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-worl...
[<INTERFACE|PUBLIC|PRIVATE> [items2...] ...]) 该命令给指定的目标文件添加头文件搜索目录,所以<target>必须用add_executable()或add_library()等命令先创建出来,和include_directories的主要差别是: include_directories会对当前CMakeLists.txt文件的目标文件生效,并会通过add_subdirectory调用传递到子目录;target_...
第一:private, public, protected 访问标号的访问范围。 private:只能由1.该类中的函数、2.其友元函数访问。 不能被任何其他访问,该类的对象也不能访问。 protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。 但不能被该类的对象访问。 public:可以被1.该类中的函数、2.子类的函数、3....
通过显式使用AFTER或BEFORE,您可以在附加和前置之间进行选择,而与默认值无关。 需要INTERFACE、PUBLIC和PRIVATE关键字来指定以下参数的scope。PRIVATE和PUBLIC项目将填充<target>的INCLUDE_DIRECTORIES属性。PUBLIC和INTERFACE项目将填充<target>的INTERFACE_INCLUDE_DIRECTORIES属性。以下参数指定包含目录。 3.11版本新增:允许在IM...
PUBLIC target对应头文件和源文件都能使用,会指定target的属性INCLUDE_DIRECTORIES 和INTERFACE_INCLUDE_DIRECTORIES PRIVATE target对应源文件使用,会指定target的属性INCLUDE_DIRECTORIES 注意: 1)所谓使用是指添加头文件搜索路径(item)。 2)target的属性可以通过set_property()修改。
target_include_directories target_include_directories target_include_directories(<target> [SYSTEM] [BEFORE]<INTERFACE|PUBLIC|PRIVATE> [items1...][<INTERFACE|PUBLIC|PRIVATE> [items2...] ...])指定编译给定⽬标时要使⽤的包含⽬录或⽬标。切⽬标必须由 or 创建 ...
这些关键字用于告诉何时需要传递给目标的包含目录列表。when表示是否需要这些包含目录:
最近看了很多项目的代码,代码是用cmake编译的,由于各种库之间链接关系错综复杂,加上PRIVATE,PUBLIC,...
The latter comes from the fact that target_include_directories() supports the PRIVATE , PUBLIC , and INTERFACE qualifiers. 原文由 Angew is no longer proud of SO 发布,翻译遵循 CC BY-SA 3.0 许可协议 有用 回复 查看全部 1 个回答 推荐问题...
这些关键字用于告诉何时需要传递给目标的包含目录列表。when表示是否需要这些包含目录: