target_include_directories(<target> [SYSTEM] [AFTER|BEFORE] <INTERFACE|PUBLIC|PRIVATE> [items1…]) 例句: 1 target_include_directories(target_so PUBLIC /usr1/dirs) 2.3、<INTERFACE|PUBLIC|PRIVATE>使用依据: INTERFACE:target对应的头文件使用 PRIVATE:target对应的源文件使用 PUBLIC:target对应的头文件、源...
target_include_directories(my_lib PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include/public INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/include/interface ) # 链接另一个库,并使用其头文件 target_link_libraries(my_lib PUBLIC other_lib) # 另一个库也可以使用当前库...
target_include_directories()的影响范围可以自定义。如加关键子PRIVATE或这PUBLIC。 一般引用库路径使用这个命令,作为外部依赖项引入进来,target是自己项目生成的lib。 如: project(myLib) target_include_directories(myLib PRIVATE ${OpenCV_Include_dir}) 1. 2. 我们将${OpenCV_Include_dir}头文件库路径只添加到...
- **注意**: 类似于`include_directories`,自CMake 3.0起,推荐使用`target_link_directories`或直接通过`target_link_libraries`指定库名和路径,以避免全局设置导致的问题。 4. **target_include_directories**: - **用途**: 在特定目标(可执行文件或库)的上下文中指定包含目录。相比于`include_directories`,它...
target_include_directory (t x/y)有目标范围—它将x/y添加到目标t的include路径中。 如果所有目标都使用相关的include目录,则需要使用link_libraries,如果路径是特定于目标,就用target_link_libraries 一个简单的示例(以下CMakeLists.txt效果相当,在ubuntu 12.04 + g++4.6下测试编译通过): ...
target will be included in the parent project build system to satisfy the dependency. 第二CMakeLists.txt内容分析: --aux_source_directory (. SRC_LIST):把当前目录的源文件:main.c test1.c test2.c都放到变量SRC_LIST里面去。 --include_directories (../include):把include目录的头文件包含进来。
最近看了很多项目的代码,代码是用cmake编译的,由于各种库之间链接关系错综复杂,加上PRIVATE,PUBLIC,...
而如果使用上面的 Make 工具,就得为每一种标准写一次 Makefile ,这将是一件让人抓狂的工作。
txt。个人经验,可能是include_directory被调用了多次导致的。应当只调用一次,并且放在所有target创建之前...
project(xxx VERSION 1.0.0) aux_source_directory(. DIR_SRCS) add_library(${PROJECT_NAME} SHARED ${DIR_SRCS}) target_include_directories(${PROJECT_NAME} PUBLIC $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/include> $<INSTALL_INTERFACE:include>) # --- install script --- set_target_properties(${...