include_directories 会为当前CMakeLists.txt的所有目标,以及之后添加的所有子目录的目标添加头文件搜索路径。因此,慎用target_include_directories,因为会影响全局target。 target_include_directories 只会为指定目标包含头文件搜索路径。如果想为不同目标设置不同的搜索路径,那么用target_include_directories更合适。 参考 h...
在target_include_directories目录下,运行cmake .以及make VERBOSE=1,关键输出: $ cmake.……# In parent scope, target main: interface[], normal[/XXX/target_include_directories]$ make VERBOSE=1……/usr/bin/c++-MD-MT CMakeFiles/main.dir/main.cpp.o-MF CMakeFiles/main.dir/main.cpp.o.d-o ...
target_include_directories(t x/y)具有目标作用域-它将x/y添加到目标t的包含路径中。如果所有的目标...
1. include_directories:当前CMakeList.txt中的所有目标以及所有在其调用点之后添加的子目录中的所有目标将具有此头文件搜索路径 2. target_include_directories:指定目标包含的头文件路径。 include_directories 语法 1 include_directories([AFTER|BEFORE] [SYSTEM] dir1 [dir2 …]) 例句: 1 include_directories(/...
target_include_directories(t x/y)具有目标作用域-它将x/y添加到目标t的包含路径中。如果所有的目标...
target_include_directories(mylib PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/mylib> $<INSTALL_INTERFACE:include/mylib> # <prefix>/include/mylib ) 创建可重定位包 请注意,不建议使用依赖项包含目录的绝对路径填充目标的INSTALL_INTERFACE或INTERFACE_INCLUDE_DIRECTORIES。这会将依赖项的包含...
问题的根源不是target_include_directories命令本身,而是试图install源路径中带有公共或接口包含目录前缀的...
{PROJECT_NAME}PRIVATE${PRJ_INCLUDE_DIRS})target_link_libraries(${PROJECT_NAME}PRIVATE${PRJ_LIBRARIES})target_compile_features(${PROJECT_NAME}PRIVATE${PRJ_COMPILE_FEATURES})get_target_property(include_dirs${PROJECT_NAME}INCLUDE_DIRECTORIES)foreach(dir${include_dirs})message(STATUS"include_dir =${...
GET_TARGET_PROPERTY(OUTPUT_VALUE hello_static OUTPUT_NAME) MESSAGE(STATUS "This is the hello_static OUTPUT_NAME:" ${OUTPUT_VALUE}) 如果没有这个属性定义,则返回 NOTFOUND。 让我们来检查一下最终的构建结果,我们发现,libhello.a已经构建完成,位于build/lib目录中,但是libhello.so去消失了。这个问题的原因...
1.我使用了错误的功能:我应该调用get_property代替。1.另一件事是INTERFACE_INCLUDE_DIRECTORIES是一个...