1. 生成动态库(.so) add_library(target-name SHARED 1.c 2.c ...) 2. 生成静态库(.a) add_library(target-name STATIC 1.c 2.c ...) 3. 同时生成动态库和静态库 将上述两条指令写入 hello-world/CMakeLists.txt 中,即: project(hello-world C) add_subdirectory(hello) add_subdirectory...
环境:Linux CMake 修改CMakeLists.txt 同时将模块编译生成动态库和静态库的方法: ADD_LIBRARY(nyutil SHARED ${SRC_LIST}) ADD_LIBRARY(nyutil_static STATIC ${SRC_LIST}) SET_TARGET_PROPERTIES(nyutil_static PROPERTIES OUTPUT_NAME "nyutil") SET_TARGET_PROPERTIES(nyutil PROPERTIES CLEAN_DIRECT_OUTPUT 1...
ADD_LIBRARY(hello SHARED ${LIBHELLO_SRC}) ADD_LIBRARY(hello STATIC ${LIBHELLO_SRC}) 但是如果使用这种方式,只会构建一个动态库,不会构建出静态库,虽然静态库的后缀是.a,此时我们可以修改静态库的名字,这样是可以同时构建动态库和静态库: ADD_LIBRARY(hello SHARED ${LIBHELLO_SRC}) ADD_LIBRARY(hello_st...
指令:add_library() 动态库 add_library(hello SHARED hello.c1.c2.c ...) 通过关键字 SHARED, 在linux和windows上分别生成动态库:libhello.so和libhello.dll 静态库 add_library(hello STATIC hello.c1.c2.c ...) 通过关键字 STATIC, 在linux和windows上分别生成静态库:libhello.a和libhello.lib 参考链接...
C++代码同上一篇文章《构建和链接静态库和动态库》,CMakeLists.txt的内容修改如下: 1# 设置cmake所需的最低版本2cmake_minimum_required(VERSION3.21)3# 声明工程名称和工程支持的编程语言4project(CmakeTest LANGUAGES CXX)56# 创建位置无关的代码7set(CMAKE_POSITION_INDEPENDENT_CODE ON)89add_library(message-...
在CMake 中指定链接动态库和静态库,可以使用以下几个命令和属性: add_library:用于添加库文件。通过设置参数SHARED指定动态库,STATIC指定静态库。 add_library(my_lib SHARED my_lib.cpp)# 动态库 add_library(my_lib STATIC my_lib.cpp)# 静态库
如何通过 ADD_LIBRARY 指令构建动态库和静态库。 如何通过 SET_TARGET_PROPERTIES 同时构建同名的动态库和静态库。 如何通过 SET_TARGET_PROPERTIES 控制动态库版本 最终使用上一节谈到的 INSTALL 指令来安装头文件和动态、静态库。 进行测试 1,执行 cmake .. 指令 ...
1、target_link_libraries必须放在add_executable或者add_library之后 2、${PROJECT_NAME}是工程名称,一般设置了project(HelloWorld)才会直接用${PROJECT_NAME} 3、PUBLIC其他可用的字符还有PRIVATE和INTERFACE PUBLIC 在public后面的库会被Link到你的target中,并且里面的符号也会被导出,提供给第三方使用。
add_library: 生成动态库或者静态库 add_library(Hello hello.cxx) #将hello.cxx编译成静态库如libHello.a add_custom_target: message( status|fatal_error, “message”): set_target_properties( ... ): lots of properties... OUTPUT_NAME, VERSION, ... link...