首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CMAKE: target_include_directories和include_directories

CMAKE: target_include_directories和include_directories
EN

Stack Overflow用户
提问于 2018-08-22 14:23:42
回答 1查看 12.6K关注 0票数 4

我正在读一个大项目的cmakelist文件,对target_include_directoriesinclude_directories的用法感到困惑。

include_directories应该能够将所有头文件添加到编译器搜索的路径中。但我仍然在子目录的cmakelist文件中看到一些target_include_directories,它们指定了特定目标的一些包含路径。

有人能解释一下这两个词的用法吗?就我而言,将头文件的所有路径添加到include_directories中应该就足够了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-22 22:03:26

include_directories适用于特定CMakeLists.txt文件中的所有目标。例如,假设你有

代码语言:javascript
复制
include_directories( ../include
   ${SOME_OTHER_PATH}/include
)

add_library(math ${MATH_SOURCES})

target_include_directories(math 
    math_include
)

add_executable(calculator ${MYCALCULATOR_SOURCES})   

target_include_directories(calculator 
    calc_include
)

calculator是一个可执行目标,而math是在同一CMakeLists.txt中定义的库目标。文件夹../include${SOME_OTHER_PATH}/include对两个都可见。这意味着cmake会在编译源代码时将选项-I../include -I<expanded-some-other-path>/include添加到这两个目标中。

对于target_include_directories,包含路径calc_include仅适用于calculator目标,math_include仅适用于math目标。正如所指定的,math_includecalc_include通常是位于包含CMakeLists.txt文件的同一文件夹中的子文件夹。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51960885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档