如何阻止C++Builder在.cbproj文件中写入完整路径?
C++Builder 项目文件路径配置问题解决办法
C++Builder(测试过的最新版本为10.3.3)生成的.cbproj文件会写入绝对路径,尤其是ILINK相关属性,比如:
<ILINK_LibraryPath>C:\Program Files (x86)\Embarcadero\Studio\20.0\lib\win64\release\;C:\Users\dclark\svst\Build64\;$(ILINK_LibraryPath)</ILINK_LibraryPath>
不用依赖统一文件夹结构,也不用直接编辑文件,优先通过IDE内置配置实现相对路径:
- 用预定义环境变量替代安装路径:Embarcadero提供了
$(BDS)这个预定义变量,对应C++Builder的安装根目录。把示例中的C:\Program Files (x86)\Embarcadero\Studio\20.0替换成$(BDS),路径就变成$(BDS)\lib\win64\release\,IDE会自动识别,不会生成绝对路径。 - 配置项目相对路径:对于自定义的本地路径(比如示例中的
C:\Users\dclark\svst\Build64\),打开项目后依次点击「Project」→「Options」→「C++ Linker」→「Library path」,直接输入相对于项目文件的相对路径(比如项目文件在C:\Users\dclark\svst\下,就填.\Build64\),保存后.cbproj会自动写入相对路径格式。 - 自定义项目级环境变量:在IDE的「Tools」→「Options」→「Environment Variables」中添加自定义变量,比如
$(BUILD_DIR)指向你的Build64目录,然后在链接器路径里引用这个变量,.cbproj里只会保存变量名,避免绝对路径问题。
如果上述配置无法满足需求,再考虑手动编辑.cbproj文件:直接将绝对路径替换为相对路径或环境变量,比如修改后的代码如下:
<ILINK_LibraryPath>$(BDS)\lib\win64\release\;.\Build64\;$(ILINK_LibraryPath)</ILINK_LibraryPath>
修改后要验证项目编译是否正常,避免路径错误。
内容的提问来源于stack exchange,提问作者user2113260
相关产品推荐
相关产品推荐

