我想知道是否可以直接在CMakeLists.txt中包含头文件,而不是cpp或hpp文件。我正在一个项目中,所有cpp文件都需要包括一些hpp文件。我可以添加
#include "foo.hpp"
在每个cpp文件中,但最好在CMakeLists.txt级别管理包含,并避免在每个cpp文件中添加#include "foo.hpp"
。
我已经尝试过
target_include_directories(${PROJECT_NAME} PRIVATE
"${PROJECT_PATH}/bar/foo.hpp")
但是它不起作用。甚至可以在cmake级别包括头文件而在cpp文件中不包括头文件吗?如果是,怎么办?
答案 0 :(得分:2)
是的,但是你不应该。
您可以通过调整变量-include
来制作CMake依赖编译器的编译标志(例如CMAKE_CXX_FLAGS
for GnuCC):
if(GNU)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -include foo.hpp")
elseif(MSVC)
...
endif()
尽管建议这样做不: