gpt4 book ai didi

c++ - CMake 中的 include_directories 和 target_include_directories 有什么区别?

转载 作者:IT老高 更新时间:2023-10-28 11:57:03 26 4
gpt4 key购买 nike

我的 C++ 代码有一个目录结构,如下所示:

|
|->include
|->src

我正在为我的代码编写一个 CMakeLists.txt 文件。我想了解 CMakeinclude_directoriestarget_include_directories 之间的区别。

它们的用法和添加我的包含文件路径之间有什么区别,我应该使用哪一个?

最佳答案

include_directories(x/y)影响目录范围。此 CMakeList 中的所有目标,以及在其调用点之后添加的所有子目录中的目标,都将具有路径 x/y添加到他们的包含路径中。

target_include_directories(t x/y)有目标范围——它增加了 x/y到目标 t 的包含路径.

如果您的所有目标都使用有问题的包含目录,则您需要前一个。如果路径特定于目标,或者您想要更好地控制路径的可见性,则需要后者。后者来自 target_include_directories()支持PRIVATE , PUBLIC , 和 INTERFACE限定词。

关于c++ - CMake 中的 include_directories 和 target_include_directories 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31969547/

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