target_include_directories我正在阅读一个大项目的 cmakelist 文件,并对和 的用法感到困惑include_directories。
应该include_directories能够将所有头文件添加到编译器搜索的路径。但我仍然target_include_directories在子目录的 cmakelist 文件中看到一些内容,它们为特定目标指定了一些包含路径。
谁能解释一下这两个的用法吗?就我而言,添加头文件的所有路径就include_directories足够了。
小智 12
include_directories适用于特定 CMakeLists.txt 文件中的所有目标。例如,假设您有
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
)
Run Code Online (Sandbox Code Playgroud)
calculator是一个可执行目标,math也是在同一 CMakeLists.txt 中定义的库目标。文件夹../include和${SOME_OTHER_PATH}/include对两者都可见。-I../include -I<expanded-some-other-path>/include这意味着 cmake 会在编译这些目标的源代码时将该选项添加到这两个目标。
对于target_include_directories,包含路径calc_include仅适用于calculator目标并且math_include仅适用于math目标。根据指定,math_include和calc_include(通常)是包含 CMakeLists.txt 文件的同一文件夹中的子文件夹。
| 归档时间: |
|
| 查看次数: |
30212 次 |
| 最近记录: |