0

我对使用 cygwin 和在 cygwin 上使用 CL 编译器非常陌生。(这是因为我的项目要求)。

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

makefile 自动获取绝对路径(例如,/cygdrive/m/username/project_name/include/)并将其作为参数提供给 CL 编译器的 /I(包含选项)。

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

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

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

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

4

1 回答 1

0

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

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

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

-I$(INC_DIR)
于 2013-01-04T18:43:16.427 回答