如何配置Make/CMake使编译器诊断消息输出相对路径而非绝对路径?
在Make/CMake中切换输出文件路径的绝对/相对显示
CMake相关设置
CMake提供了直接控制路径显示的配置选项,可按需调整:
CMAKE_USE_RELATIVE_PATHS:设置为
ON后,CMake生成的Makefile会统一使用相对路径替代绝对路径。你可以在CMakeLists.txt中添加配置:set(CMAKE_USE_RELATIVE_PATHS ON)也可以在执行
cmake初始化时通过命令行参数指定:cmake -DCMAKE_USE_RELATIVE_PATHS=ON ..该设置会影响CMake生成的所有路径引用,包括编译过程中的文件路径输出。
编译器诊断路径控制:你示例中编译器输出的错误路径(如
/home/foo/code/sandbox/apps/main.cpp),可通过GCC/Clang的参数调整。在CMake中添加编译选项:add_compile_options(-fdiagnostics-path-format=relative)此参数会让编译器直接输出相对于当前工作目录的路径。
手写Makefile的调整方式
如果是手动编写的Makefile,需直接修改编译规则中的路径引用:
- 将编译命令里的绝对路径替换为相对路径(比如把
/home/foo/code/sandbox/apps/main.cpp改为apps/main.cpp,前提是当前工作目录为项目根目录)。 - 可借助Make的内置变量(如
$(CURDIR))来拼接相对路径,确保路径引用的正确性。
内容的提问来源于stack exchange,提问作者Kalyani Kansal
相关产品推荐
相关产品推荐

