让Eclipse CDT在生成的Makefile中使用相对包含路径

时间:2010-10-22 13:17:48

标签: eclipse makefile eclipse-cdt

我正在使用Eclipse CDT。我已经配置了“外部构建器”,我自动生成Makefile。不幸的是,生成的Makefile包含绝对包含路径。我想在其他系统上使用生成的Makefile(没有安装Eclipse) - 有没有办法让Eclipse使用相对路径进入Makefile?

我已在Settings - >下配置了我的项目include目录。工具设置 - > GCC C编译器 - >使用$ {workspace_log}包含路径。

4 个答案:

答案 0 :(得分:4)

如果在“包含路径”(而不是${workspace_loc})中使用相对路径,则makefile(及其使用的.mk文件)也将包含相对路径。

答案 1 :(得分:4)

您在“项目>属性> C / C ++一般>路径和符号>包含”选项卡中添加的相对路径是相对于项目文件夹的。

生成的makefile中出现的那些相对于主Makefile位置。

答案 2 :(得分:3)

有一种更好的方法:“项目>属性> C / C ++构建>设置>工具设置>交叉G ++ [或GCC]编译器>包括”。单击加号按钮,然后写:

  

“$ {ProjDirPath} /../../../ somefolder1 / somefolder2”

此方法允许您通过项目文件夹的相对路径指定任何外部文件夹,即使它位于父子文件夹中。

答案 3 :(得分:0)

我很久以前就发现了这个问题。我正在尝试使用Eclipse CDT设置GitLab CI,建议的最简单方法是使用CDT生成的现有makefile。但是,我无法轻松地配置Eclipse CDT来轻松在具有相对路径的项目中生成makefile,我可以看到可以更改“ include”设置,但是在makefile中使用make中的绝对路径引用了其他文件文件。因此,我只是使用PowerShell脚本将所有绝对路径更新为相对路径。检查PWD的绝对路径,然后计算../返回到项目的根目录。我的文件夹深5个。

ls *.mk -rec | %{ $f=$_; (gc $f.PSPath) | %{ $_ -replace "c:/absolute path", "../../../../.." } | sc $f.PSPath }