add_library中的第二个参数 STATIC 表示是静态库,如果不加STATIC的话比如 add_library(xlog xlog.cpp) 就是默认编译动态库,如果要编译静态库再通过cmake的预制变量来控制。 STATIC 替换为SHARED 就是指定编译为动态库,例如:add_library(xlog SHARED xlog.cpp) 。 如果是Linux动态库代码不需要调整,Windows动态库需...
通过第一步的练习,我们已经能够使用 CMake 创建一个简单的项目了,在这一个步骤中,我们将学习如何在我们的项目中添加一个 library。同时我们还会学习如何让我们的 library 对于项目来说是可选的。 练习1 - 创建库 在CMake 项目中,如果要添加一个 library,我们使用的命令是 add_library()[1]。 添加library 的...
add_library(生成库),target_link_libraries(生成目标连接的库),set_target_properties 生成静态库: add_library(libsugan ${SRC_LISTS}) #用${SRC_LISTS}生成静态库libsugan 或 ADD_LIBRARY(static_lib STATIC ${DIR_SUB_SRCS}) 生成动态库(加SHARED ): add_library(libsugan SHARED ${SRC_LISTS}) #用$...
add_library([库名称] SHARED/STATIC [源文件1] [源文件2] ...) #示例生成一个名为libmymath.a的静态库 add_library(mymath STATIC add.cpp sub.cpp mul.cpp div.cpp) 在Linux中,静态库名字分为三部分:lib+库名+.a,命令需要指出的是中间部分,另外两部分在生成库文件时会自动补全。命令的第二个选项...
add_library: 生成动态库或静态库(第1个参数指定库的名字;第2个参数决定是动态还是静态,如果没有就默认静态;第3个参数指定生成库的源文件) set_target_properties: 设置最终生成的库的名称,还有其它功能,如设置库的版本号等 LIBRARY_OUTPUT_PATH: 库文件的默认输出路径,这里设置为工程目录下的lib目录 ...
3. add_library add_library命令用来使用指定的源文件向工程中添加一个目标库,主要有一下几种形式。 3.1. 普通库 3.1.1 命令形式 add_library(<name> [STATIC | SHARED | MODULE] [EXCLUDE_FROM_ALL] [...]) 1. 2. 3. 添加一个从source列表列出的文件构建而来的目标名为name的库。 name必须全局...
本文主要讲述在Linux下如何使用CMake来编译我们的程序。 一 安装CMake 本文使用ubuntu18.04,安装cmake使用如下命令, sudo apt install cmake 安装完成后,在终端下输入cmake -version查看cmake版本, 这样cmake就安装好了。 二 简单样例 首先让我们从最简单的代码入手,先来体验下cmake是如何操作的。编写main.c,如下...
CMAKE_LIBRARY_PATH:环境变量; CMAKE_CURRENT_SOURCE_DIR:当前处理的CMakeLists.txt文件所在路径; CMAKE_CURRENT_BINARY_DIR:target编译目录; 使用ADD_SURDIRECTORY指令可以更改该变量的值; SET(EXECUTABLE_OUTPUT_PATH < dir >) 指令不会对该变量有影响,但改变了最终目标文件的存储路径; CMAKE_CURRENT_LIST_FIL...
#设置此工程的源码set(SRC add.cpp)#设置输出的库的类型(SHARED)和名字(add)add_library(add SHARED ${SRC})message("<<< Create Lib !>>>") 3. 生成共享库效果 三、 共享库的链接 1. 文件结构 把之前一些小功能结合一下 #被链接的库相对路径link_directories(../src/libs/lib)#被链接库的头文件...
CMake是一个主要用于CPP的构建工具。CMake语言是平台无关的中间编译工具。同一个CMake编译规则在不同系统平台构建出不同的可执行构建文件。在Linux产生MakeFile,在Windows平台产生Visual Studio工程等。CMake旨在解决各平台的不同Make工具的产生的差异(比如GNU Make, ...