ARCHIVE_OUTPUT_DIRECTORY, LIBRARY_OUTPUT_DIRECTORY和 RUNTIME_OUTPUT_DIRECTORY,详见cmake 常用设定及函数 设置EXCLUDE_FROM_ALL,可使这个library排除在all之外,即必须明确点击生成才会生成 imported library add_library(<name> <SHARED|STATIC|MODULE|OBJECT|UNKNOWN> IMPORTED [GLOBAL]) 这种用法直接导入已经生成的库,...
不会在每次编译器调用中添加INTERFACE_INCLUDE_DIRECTORIES标志的现代CMake版本将使用导入的库: add_library(bar SHARED IMPORTED) # or STATIC instead of SHARED set_target_properties(bar PROPERTIES IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/lib/libbar.so" INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/...
对于find_package找不到的外部依赖库,可以用add_library添加 SHARED表示添加的是动态库 IMPORTED表示是引入已经存在的动态库 指定所添加依赖库的导入路径 添加头文件路径到编译器的头文件搜索路径下,多个路径以空格分隔 添加一个可执行目标,名称可自己指定,本例是直接用工程名称命名的 该可执行目标是由SRC_LIST中所列...
示例:在CMake中使用add_library创建一个IMPORTED库: cmake add_library(MyExternalLib SHARED IMPORTED) 这行代码添加了一个名为MyExternalLib的外部共享库到项目中。 为IMPORTED库设置属性: 为了使用外部库,需要设置一些属性,如包含目录、库文件路径等。这可以通过set_target_properties命令完成: cmake set_targe...
target_link_libraries(MyExecutable PRIVATE MyLibrary) 在这个例子中,MyLibrary是你创建的一个导入目标,"/path/to/mylibrary.*"和"/path/to/mylibrary/headers"应该替换为你的库文件和头文件的实际路径。 至于add_library(MyLibrary SHARED IMPORTED)里面的是SHARED还是STATIC并不能决定是静态还是动态,本质还是看具...
add_library( # Sets the name of the library. native-lib # Sets the library as a shared library. SHARED # Provides a relative path to your sourcefile(s). src/main/cpp/native-lib.cpp) # Searchesfora specified prebuilt library and stores the path as a ...
add_library(lib_gperf SHARED IMPORTED) #指定导入的库位置 set_target_properties(lib_gperf PROPERTIES IMPORTED_LOCATION ${distribution_DIR}/gperf/lib/${ANDROID_ABI}/libgperf.so) #通c++ flags指定使用的c++标准库为gnu++11 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11") ...
其中,target_name是目标库的名称,IMPORTED_LOCATION属性用于指定共享库的路径。 下面是一个示例: 代码语言:txt 复制 # 查找共享库 find_library(LIBRARY_NAME mylib PATHS ${CMAKE_CURRENT_SOURCE_DIR}/lib) # 添加共享库 add_library(mylib SHARED IMPORTED) # 设置共享库属性 set_target_properties(mylib PROP...
add_library(Demo STATIC IMPORTED) add_library(Demo SHARED IMPORTED) 进阶 自定义目标 除了通常的可执行文件和库可以作为目标,CMake也支持将任意的命令通过add_custom_target()命令打包为一个特殊的工具目标(utility target), 例如生成代码、执行脚本或清理临时文件的命令操作。add_custom_target既可以设置命令的具体...
IMPORTED_LOCATION_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}/libbar.a IMPORTED_LOCATION_DEBUG ${CMAKE_CURRENT_SOURCE_DIR}/libbard.a IMPORTED_LINK_INTERFACE_LIBRARIES baz) # <-- dependency is here 注意动态库和静态库稍有区别: add_library(bar SHARED IMPORTED) ...