目录
- 准备
- 新建文件
- 编辑源文件
- 编译生成可执行文件
- 编译生成动态链接库
准备
新建文件
在开始之前,我们先准备一个项目所需要的基本结构。
- 新建一个项目的文件夹test_so
- 在项目文件夹中新建一个src文件夹存放源代码(并新建一个test.cpp文件),一个build文件夹存放编译过程中产生的各种文件
- 新建一个CMakeLists.txt文件,这也是CMake进行编译所必须的文件。
准备好的文件结构如下所示:
编辑源文件
在src文件夹中新建一个test.cpp文件,并加入以下内容。
/**
* @file test.cpp
* @author xiaochen (xchwang@whu.edu.cn)
* @brief
* @version 0.1
* @date 2023-01-02
*
* @copyright Copyright (c) 2023 Xiaochen Wang
*
*/
#include <iostream>
using namespace std;
int main(int argc, char** argv){
std::cout << "hello word!" << std::endl;
return 0;
}
编译生成可执行文件
在CMakeLists.txt文件中加入下述内容:
cmake_minimum_required(VERSION 2.8)
project(Test)
set( CMAKE_BUILD_TYPE "Release" )
set(CMAKE_CXX_FLAGS "-std=c++11 -O3")
add_executable(Test ./src/test.cpp)
保存之后,在build文件中打开一个终端,输入下述命令。
cmake ..
make
之后,我们在build文件中可以找到一个新生成的Test文件。
在终端中使用下述命令执行:
./Test
输出hello word!
至此,我们完成了编译生成可执行文件的操作过程。
编译生成动态链接库
修改CMakeLists.txt文件内容如下所示:
cmake_minimum_required(VERSION 2.8)
project(Test)
set( CMAKE_BUILD_TYPE "Release" )
set(CMAKE_CXX_FLAGS "-std=c++11 -O3")
add_library(TestLib SHARED ./src/test.cpp)
同样的,在build文件中打开一个终端,输入下述命令。
cmake ..
make
我们可以看到新生成了一个 libTestLib.so 文件,这就是我们需要的动态链接库,能够分享给其他人进行使用。