CL 编译器无法在 cygdrive 中选择绝对包含路径

问题描述 投票:0回答:1

我对使用 cygwin 以及在 cygwin 上使用 CL 编译器还很陌生。 (这是因为我的项目要求)。

我实际上面临着包含路径的问题,由 cl 编译器发现。 我们使用 makefile 来构建项目。

makefile 自动采用绝对路径 (例如,/cygdrive/m/用户名/项目名称/include/) 并将其作为参数提供给 CL 编译器的 /I(包含选项)。

但是 Cl Compiler 无法在该路径中找到头文件,而头文件实际上存在于该路径中。

相反,如果我更改 makefile 以提供相对路径 (例如,../src/../project_name/include/而不从/cygdrive/m/username开始),然后它能够从该路径找到并包含头文件...(这些是相同的头文件之前通过绝对路径引用)。

我不确定为什么当 /I 选项中给出绝对路径时 CL 编译器无法找到并包含头文件。

在 Cygwin 中使用时是否有任何其他选项或任何其他方式提供包含路径?

visual-studio cygwin include-path
1个回答
0
投票

尝试在 makefile 中使用 'cygpath` 来转换文件的格式。 对于您提供的特定示例,下面显示的命令将起作用。

INC_DIR=$(shell cygpath -m $/cygdrive/m/username/project_name/include/)

转换所有路径后,像平常一样将路径包含在 makefile 中

-I$(INC_DIR)
© www.soinside.com 2019 - 2024. All rights reserved.