【问题标题】:CL compiler unable to pick absolute include paths in cygdriveCL 编译器无法在 cygdrive 中选择绝对包含路径
【发布时间】:2013-01-04 06:10:37
【问题描述】:

我对使用 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 中使用时是否有任何其他选项或任何其他方式来提供包含路径?

【问题讨论】:

    标签: visual-studio compiler-construction cygwin include-path


    【解决方案1】:

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

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

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

    -I$(INC_DIR)
    

    【讨论】:

      猜你喜欢
      • 2015-08-05
      • 2016-06-23
      • 2014-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-24
      相关资源
      最近更新 更多