如果我制作我的项目,我可以看到:
[ 50%] Building C object CMakeFiles/hello.dir/hello.c.obj
/cygdrive/c/users/me/Home/bin/iccarm /cygdrive/c/users/me/Home/sandbox/iar/hello.c -I/cygdrive/c/users/me/Home/sandbox/iar/foo -I/cygdrive/c/users/me/Home/inc -o CMakeFiles/hello.dir/hello.c.obj
Run Code Online (Sandbox Code Playgroud)
既然我总是make在我的build目录中调用,那么为了跨操作系统的可读性和兼容性,为什么不使用相对路径呢?
[ 50%] Building C object CMakeFiles/hello.dir/hello.c.obj
iccarm hello.c -Ifoo -Iinc -o CMakeFiles/hello.dir/hello.c.obj
Run Code Online (Sandbox Code Playgroud)
是不是好多了?
有没有办法强制 CMake 尽可能多地使用相对路径?
CMake 总是使用绝对路径。这是概念的一部分。因此,您不能移动生成的构建环境文件,也不能例如将它们置于源代码控制之下或使详细输出更漂亮(您可以像这里一样使用规则消息)。
曾经有过CMAKE_USE_RELATIVE_PATHS,但文档显示:
此变量无效。它在以前版本中的部分实现效果在 CMake 3.4 中被删除。
参考
| 归档时间: |
|
| 查看次数: |
7381 次 |
| 最近记录: |