add_library中的第二个参数 STATIC 表示是静态库,如果不加STATIC的话比如 add_library(xlog xlog.cpp) 就是默认编译动态库,如果要编译静态库再通过cmake的预制变量来控制。 STATIC 替换为SHARED 就是指定编译为动态库,例如:add_library(xlog SHARED xlog.cpp) 。 如果是Linux动态库代码不需要调整,Windows动态库需...
add_library: 生成动态库或静态库(第1个参数指定库的名字;第2个参数决定是动态还是静态,如果没有就默认静态;第3个参数指定生成库的源文件)。 set_target_properties: 设置输出的名称,还有其它功能,如设置库的版本号等等。 LIBRARY_OUTPUT_PATH: 库文件的默认输出路径,这里设置为工程目录下的lib目录。 testcmake目...
add_library: 生成动态库或静态库(第1个参数指定库的名字;第2个参数决定是动态还是静态,如果没有就默认静态;第3个参数指定生成库的源文件) set_target_properties: 设置最终生成的库的名称,还有其它功能,如设置库的版本号等 LIBRARY_OUTPUT_PATH: 库文件的默认输出路径,这里设置为工程目录下的lib目录 PS:前面使用...
EXCLUDE_FROM_ALL 参数的意思是这个库不会被默认构建,除非有其他的组件依赖或者手 工构建。 2.1、添加动态库libXX.so 在lib/CMakeLists.txt中添加下面两行,构建动态库 SET(LIBHELLO_SRC hello.c) ADD_LIBRARY(hello SHARED ${LIBHELLO_SRC}) 1. 2. 2.2、添加静态库libXX.a 同样使用上面的指令,我们在支持...
因为默认情况下,所有平台都是默认的动态链接运行时库,所以只要你不明确的指定是静态链接运行时库,那么它就一定是动态链接运行时库。 那如果我是一个“铁脑壳”,非要指定呢? MSVC: set(CMAKE_MSVC_RUNTIME_LIBRARY"MultiThreadedDLL$<$<CONFIG:Debug>:DebugDLL>") ...
EXCLUDE_FROM_DEFAULT_BUILD属性被visual studio生成器使用。如果属性值设置为1,那么当你选择"构建解决方案"时,目标将不会成为默认构建的一部分。 SET_TARGET_PROPERTIES(hello_static PROPERTIES OUTPUT_NAME "hello") 同时生成动态静态库 ADD_LIBRARY(hello SHARED ${LIBHELLO_SRC}) ...
按你的需求,并不需要这个功能,你直接添加一个静态库就足够了:add_library(xlib STATIC a.cpp b....
CMAKE_STATIC_LIBRARY_SUFFIX静态库后缀,Linux下默认为.a CMAKE_SHARED_LIBRARY_PREFIX动态库前缀,Linux下默认为lib CMAKE_SHARED_LIBRARY_SUFFIX动态库后缀,Linux下默认为.so BUILD_SHARED_LIBS如果为ON,则add_library默认创建共享库 CMAKE_INSTALL_PREFIX配置安装路径,默认为/usr/local ...
还可以用 CMake 生成链接库,可以是静态库(.lib),也可以是动态库(.dll),语法如下: add_library( 动态链接库名称 SHARED 源码列表 ) add_library( 静态链接库名称 STATIC 源码列表 ) 如果不指定 SHARED 或是 STATIC,默认生成的是 STATIC,这个例子里,src 文件夹下生成了 3 个链接库,LibCubic 是“指定”生成...