第一:private, public, protected 访问标号的访问范围。 private:只能由1.该类中的函数、2.其友元函数访问。 不能被任何其他访问,该类的对象也不能访问。 protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。 但不能被该类的对象访问。 public:可以被1.该类中的函数、2.子类的函数、3....
PRIVATE:私有的。生成 libhello-world.so时,只在 hello_world.c 中包含了 hello.h,libhello-world.so对外的头文件——hello_world.h 中不包含 hello.h。而且 main.c 不会调用 hello.c 中的函数,或者说 main.c 不知道 hello.c 的存在,那么在 hello-world/CMakeLists.txt 中应该写入: target_link_librar...
作用:指定 target 链接的库文件(相当于指定g++编译器-l参数) 语法:target_link_libraries(target [INTERFACE|PUBLIC|PRIVATE] library1 library2…) 其中,target为库文件或可执行文件 PRIVATE:私有的 INTERFACE:接口 PUBLIC:PUBLIC = PRIVATE + INTERFACE #将libhello.so动态库文件链接到可执行文件main target_link_l...
target_include_directories(<target> [SYSTEM] [AFTER|BEFORE] <INTERFACE|PUBLIC|PRIVATE> [items1...] [<INTERFACE|PUBLIC|PRIVATE> [items2...] ...]) AFTER或BEFORE 可以选择让添加的路径位于搜索列表的开头或结尾。缺省时,默认是AFTER。 INTERFACE,PUBLIC,PRIVATE 指定接下来的参数item(即路径)的作用域: ...
<INTERFACE|PUBLIC|PRIVATE> [items1...] [<INTERFACE|PUBLIC|PRIVATE> [items2...] ...]) 该命令给指定的目标文件添加头文件搜索目录,所以<target>必须用add_executable()或add_library()等命令先创建出来,和include_directories的主要差别是: include_directories会对当前CMakeLists.txt文件的目标文件生效,并会...
则需要后一个。后一个是因为target_include_directories()支持PRIVATE,PUBLIC和INTERFACE限定符。
- nav 4 如果您想了解使用target_include_directories时关键字PRIVATE、PUBLIC和INTERFACE的含义,请单击此处。这与IT有关。 - nav 8 正如@Angew所说,两者的区别在于: 1. include_directories() 可以被源代码树中所有文件访问。 2. target_include_directories() 仅在编译特定目标时可访问。 - Nick.Rhan网页...
target_include_directories(target_namePRIVATEdir1 dir2 ...) 其中,target_name是目标的名称,dir1 dir2 ...是需要添加的路径。 使用 有时候,需要添加系统头文件路径,并且希望编译器忽略这些路径中发生的警告。可以使用SYSTEM标志来达到这个目的。 include_directories(SYSTEM/usr/local/include) 总结 通过include_di...
<INTERFACE|PUBLIC|PRIVATE> [items1...] [<INTERFACE|PUBLIC|PRIVATE> [items2...] ...]) 指定编译给定目标时要使用的包含目录。命名的<target>必须是由add_executable()或add_library()等命令创建的,并且不能是ALIAS target。 通过显式使用AFTER或BEFORE,您可以在附加和前置之间进行选择,而与默认值无关。
则需要后一个。后一个是因为target_include_directories()支持PRIVATE,PUBLIC和INTERFACE限定符。