如果B link C时用public 指示, 当编译A时,就会检查到C中的符号没有实现,此时你就会知道要把C link到A来解决这个问题了。 其实private/public 解决的是指示问题,本质上可以使用public 来解决, 可以减少坑。 下面是target_link_libraries中的解释,不想看英文的,直接拉到最后。 Link Inheritance Similarly, for any...
如果目标的头文件中包含了依赖的头文件(源文件间接包含),那么这里就是PUBLIC 如果目标仅源文件中包含了依赖的头文件,那么这里就是PRIVATE 如果目标的头文件包含依赖,但源文件未包含,那么这里就是INTERFACE https://cmake.org/cmake/help/v3.0/manual/cmake-buildsystem.7.html#transitive-usage-requirements...
target_link_libraries(bar PUBLIC foo) 链接为public,main函数正常调用foo(),bar中正常调用foo(),库foo链接给bar,同时foo也被传给了main。 target_link_libraries(bar PRIVATE foo) 编译,发现main.cpp: undefined reference to `foo()',main.cpp这个编译单元找不到foo()这个符号,库foo链接到bar就被终结了,bar...
PUBLIC = PRIVATE + INTERFACE。生成 libhello-world.so 时,在 hello_world.c 和 hello_world.h 中都包含了 hello.h。并且 main.c 中也需要使用 libhello.so 提供的功能。那么在 hello-world/CMakeLists.txt 中应该写入: target_link_libraries(hello-world PUBLIC hello) target_include_directories(hello-wo...
PUBLIC之后的库和目标链接到链接接口,并成为链接接口的一部分。PRIVATE之后的库和目标被链接到,但不是链接接口的一部分。INTERFACE之后的库被附加到链接接口,不用于链接<target>. include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) add_library(add_shared SHARED ${CMAKE_CURRENT_SOURCE_DIR}/source/add....
target_link_libraries(<target><PRIVATE|PUBLIC|INTERFACE> <item>...[<PRIVATE|PUBLIC|INTERFACE> <item>...]...) PUBLIC、PRIVATE 和 INTERFACE 范围关键字可用于在一个命令中指定链接依赖关系和链接接口。 紧跟在 PUBLIC 后的库和目标将被链接,并成为链接接口的一部分。紧跟在 PRIVATE ...
Other build properties of PUBLIC and INTERFACE dependencies are propagated to consuming libraries.http://www.cmake.org/cmake/help/v3.0/manual/cmake-buildsystem.7.html#transitive-usage-requirements
target_link_libraries(<target><PRIVATE|PUBLIC|INTERFACE> <item>...[<PRIVATE|PUBLIC|INTERFACE> <item>...]...) PUBLIC、PRIVATE 和 INTERFACE 范围关键字可用于在一个命令中指定链接依赖关系和链接接口。 紧跟在 PUBLIC 后的库和目标将被链接,并成为链接接口的一部分。紧跟在 PRIVATE ...
target_link_libraries(outer PRIVATE middle) The inner library defines the SomeSetting=true definition as PUBLIC, so both inner and middle will have this definition applied to them. - If XXXX is PRIVATE, the middle library links to inner as PRIVATE, so ...
cmake target_link_libraries() 中<PUBLIC|PRIVATE|INTERFACE> 的区别 2019-08-16 16:47 −... SnailRush 0 4649 Typescript中private、public、protected修饰符的区别 2019-12-24 15:20 −首先我们需要了解什么是类,class。 ## 什么是面向对象编程? 即Object Oriented Programming,OOP。主要思想是把构成问题...