目前要在使用 gcc 时更改编译器标志,我为构建目标编辑 CMakeLists.txt:
if (UNIX)
add_definitions(-Wall)
add_definitions(-g)
#add_definitions(-O2)
endif (UNIX)
问题在于 git 接受了更改。如果我继续提交此更改,我会惹恼其他希望使用 -O2 而不是 -g 的开发人员,但是当他们拉取不相关的更改时,他们会得到我的版本。通常,我可以从我的提交中排除此更改,但是当我对 CMakeLists.txt 文件进行实际更改时,无法避免推高我个人选择的编译标志。
有没有办法告诉 CMake 在 build/ 目录中创建一个文件(特定于每个工作副本,因此特定于每个开发人员),个人可以根据自己的意愿进行修改,而无需触及项目文件(除了 build/ 之外的所有内容)。自然,我们的 build/ 不会提交到 git 存储库。
请注意,当使用 Visual Studio 而不是 gcc 时,IDE 会通过其 UI 为我们处理此问题,该 UI 会修改 build/. 问题是我们在使用 GNU Makefiles 时没有这样的机制。
我们的项目是这样组织的:
ourproject/
bin/
build/ <-- CMake-generated stuff goes here
lib/
src/
abuildtarget/
anotherbuildtarget/
source.cpp
source.h
CMakeLists.txt