作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道是否可以直接在 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")
但它不起作用。甚至可以在不包含 cpp 文件的情况下在 cmake 级别包含头文件吗?如果是,怎么办?
最佳答案
是的,但你不应该。
您可以通过调整变量 -include
使 CMake 发出依赖于编译器的编译标志(例如 GnuCC 的 CMAKE_CXX_FLAGS
) :
if(GNU)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -include foo.hpp")
elseif(MSVC)
...
endif()
虽然这是不可取的,因为它:
关于c++ - 如何在 CMakeLists.txt 中包含 h/hpp 头文件而不是 cpp 或其他 hpp 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57390149/
我是一名优秀的程序员,十分优秀!