CMake中add_library与IMPORTED的详细解释 add_library在CMake中的基本用法: add_library是CMake中的一个命令,用于添加一个库目标到项目中。这个库可以是静态库(.a或.lib),动态库(.so、.dll或.dylib),或者是模块库(特定于某些构建系统)。基本语法如下: cmake add_library(<name> [<STATIC|SHARED...
不会在每次编译器调用中添加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}/...
add_library(<name> <SHARED|STATIC|MODULE|OBJECT|UNKNOWN> IMPORTED [GLOBAL]) 1. 2. 这种用法可以直接导入已经生成的库,cmake不会给这类library添加编译规则。 这种用法的关键在于添加变量IMPORTED。 另外,GLOBAL可用于设置这个library为全局可见。 imported的library,其属性以IMPORTED_开头,导入库的几个重要属性如下...
add_library(<name> <type> IMPORTED [GLOBAL]) 回到顶部 创建接口库 1 add_library(<name> INTERFACE [IMPORTED [GLOBAL]]) 这类库有属性,能install(),export和imported,但可能没有build过程。像纯头文件库或完全针对target的设计(这条参见interface libraries) 回到顶部 为库起别名 为给定library添加一个别名,...
set_target_properties(MyLibrary PROPERTIES IMPORTED_LOCATION "/path/to/mylibrary.dll" # Windows # 或者 # IMPORTED_LOCATION "/path/to/mylibrary.so" # Linux INTERFACE_INCLUDE_DIRECTORIES "/path/to/mylibrary/headers" ) # 静态链接 add_library(MyLibrary STATIC IMPORTED) ...
add_library( hello_shared SHARED ${libhello_src}) add_library( hello_static STATIC ${libhello_src}) # 按照一般的习惯,静态库名字跟动态库名字应该是一致的,只是扩展名不同; #即:静态库名为 libhello.a; 动态库名为libhello.so ; # 所以,希望 "hello_static" 在输出时,不是"hello_static",而是...
add_library(my_math SHARED my_math.cpp)中SHARED表示将my_math编译成共享库so,从而被其他程序引用。 引用第三方库 CMake中可以使用FetchContent来引用第三方库,以fmt为例,在根目录下的CMakeLists.txt文件中添加如下命令: # 引用第三方fmt库 include(FetchContent) FetchContent_Declare( fmt GIT_REPOSITORY https:...
2.对于需要源码编译(例如src文件夹中含有一堆.h,.cpp文件等) file(GLOB_RECURSE <变量名> "src/.hpp" "src/.cpp" "src/.h" "src/.c") add_library(<库名> STATIC ${变量名}) 3.对于已经编译好的第三方库 add_library(<库名> INTERFACE IMPORTED)#将已编译好的include和lib封装成你想要的库target...
IMPORTED_LOCATION_DEBUG ${CMAKE_CURRENT_SOURCE_DIR}/libbard.a IMPORTED_LINK_INTERFACE_LIBRARIES baz) # <-- dependency is here 注意动态库和静态库稍有区别: add_library(bar SHARED IMPORTED) set_property(TARGET bar PROPERTY IMPORTED_LOCATION c:/path/to/bar.dll) ...
add_library(add_static STATIC IMPORTED GLOBAL) #指定外部库的位置 set_target_properties(add_static PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/lib/libadd_static.a) #以下两种方法均可 #设置头文件,注意用INTERFACE #target_include_directories(add_static INTERFACE ${CMAKE_CURRENT_SOURCE_...