各级子目录中无需使用target_include_directories()或者include_directories()了。如果此时查看详细的编译过程(make VERBOSE=1)就会发现编译过程是一大坨,很不舒服。 当然了,在最终子目录的 CMakeLists.txt 文件中,使用include_directories()和target_include_directories()的效果是相同的。 4. 目录划分 每一个目录都...
target_include_directories中PRIVATE的PUBLIC区别 private protected public 区别,第一:private,public,protected访问标号的访问范围。private:只能由1.该类中的函数、2.其友元函数访问。不能被任何其他访问,该类的对象也不能访问。protected:可以被1.该类中的函数、2
target_link_libraries(hello-world INTERFACE hello) target_include_directories(hello-world INTERFACE hello) PUBLIC:公开的。PUBLIC = PRIVATE + INTERFACE。生成 libhello-world.so 时,在 hello_world.c 和 hello_world.h 中都包含了 hello.h。并且 main.c 中也需要使用 libhello.so 提供的功能。那么在 hel...
include_directories会对当前CMakeLists.txt文件的目标文件生效,并会通过add_subdirectory调用传递到子目录;target_include_directories则针对指定的目标文件生效。 target_include_directories对于指定目标添加的目录,有三种范围可选,PUBLIC、PRIVATE和INTERFACE。INTERFACE和PUBLIC会添加到<target>的INTERFACE_INCLUDE_DIRECTORIES属...
target_include_directories 为指定目标(target)添加搜索路径,指定目标是指通过如add_executable(),add_library()这样的命令生成的,并且决不能是alias target(引用目标,别名目标)。 语法格式: target_include_directories(<target> [SYSTEM] [AFTER|BEFORE] <INTERFACE|PUBLIC|PRIVATE> [items1...] [<INTERFACE|PUBLI...
target_include_directories(hello-world INTERFACE hello) 1. 2. PUBLIC:公开的。PUBLIC = PRIVATE + INTERFACE。生成 libhello-world.so 时,在 hello_world.c 和 hello_world.h 中都包含了 hello.h。并且 main.c 中也需要使用 libhello.so 提供的功能。那么在 hello-world/CMakeLists.txt 中应该写入: ...
则需要后一个。后一个是因为target_include_directories()支持PRIVATE,PUBLIC和INTERFACE限定符。
则需要后一个。后一个是因为target_include_directories()支持PRIVATE,PUBLIC和INTERFACE限定符。
target_include_directories(target_name SYSTEM 代码语言:txt 复制 <INTERFACE|PUBLIC|PRIVATE> [items1...] 代码语言:txt 复制 [<INTERFACE|PUBLIC|PRIVATE> [items2...] ...]) 代码语言:txt 复制 target_name:目标的名称。 SYSTEM:可选参数,用于指定这些头文件路径是否被视为系统路径。如果指定了SYSTEM参...
include_directories(x/y) 影响目录范围。此 CMakeList 中的所有目标,以及在其调用点之后添加的所有子目录中的目标,都会将路径 x/y 添加到它们的包含路径中。 target_include_directories(t x/y) 具有目标范围——它将 x/y 添加到目标 t 的包含路径中。 如果您的所有目标都使用相关的包含目录,则您需要前一...