gpt4 book ai didi

CMAKE:target_include_directories 和 include_directories

转载 作者:行者123 更新时间:2023-12-03 23:15:23 27 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





What is the difference between include_directories and target_include_directories in CMake?

(3 个回答)


4 个月前关闭。




我正在阅读一个大项目的cmakelist文件,对target_include_directories的用法感到困惑和 include_directories .
include_directories应该能够将所有头文件添加到编译器搜索的路径中。但是我还是看到了一些target_include_directories在子目录的 cmakelist 文件中,为特定目标指定一些包含路径。

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

最佳答案

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
)
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 文件的同一文件夹中的子文件夹。

关于CMAKE:target_include_directories 和 include_directories,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51960885/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com