准备
新建文件
在开始之前,我们先准备一个项目所需要的基本结构。
- 新建一个项目的文件夹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 文件,这就是我们需要的动态链接库,能够分享给其他人进行使用。