Ubuntu 18.04使用CMake编译可执行文件、动态链接库

简介: Ubuntu 18.04使用CMake编译可执行文件、动态链接库

准备

新建文件

在开始之前,我们先准备一个项目所需要的基本结构。

  • 新建一个项目的文件夹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 文件,这就是我们需要的动态链接库,能够分享给其他人进行使用。

目录
相关文章
|
4月前
|
存储 网络协议 Ubuntu
如何在Ubuntu安装配置SVN服务端并实现无公网ip访问内网资料库
如何在Ubuntu安装配置SVN服务端并实现无公网ip访问内网资料库
74 0
|
4月前
|
Ubuntu Linux 时序数据库
|
4月前
|
Ubuntu 固态存储 算法框架/工具
ubuntu下编译ssd-caffe遇到的问题汇总
ubuntu下编译ssd-caffe遇到的问题汇总
|
7天前
|
Ubuntu Linux 数据安全/隐私保护
Linux(24) 如何在Ubuntu中操作rootfs.img文件
Linux(24) 如何在Ubuntu中操作rootfs.img文件
12 0
|
5月前
|
并行计算 Ubuntu Linux
Ubuntu 20.04 Anaconda的简单使用以及虚拟环境中编译使用 OpenCV 4.11源码
Ubuntu 20.04 Anaconda的简单使用以及虚拟环境中编译使用 OpenCV 4.11源码
147 0
|
5月前
|
Ubuntu 计算机视觉 C++
Ubuntu 20.04 编译 Opencv 4.11,详细步骤(带图)及报错解决,我的踩坑之旅~
Ubuntu 20.04 编译 Opencv 4.11,详细步骤(带图)及报错解决,我的踩坑之旅~
652 0
|
4月前
|
Ubuntu C++
百度搜索:蓝易云【Ubuntu下编译OCC教程】
请注意,以上只是概述,并不包含详细的步骤和指令。编译OpenCASCADE是一个复杂的过程,需要有一定的编译和C++编程经验。建议在编译OpenCASCADE之前,先学习相关知识并查阅官方文档和教程,以确保正确编译和使用OpenCASCADE库。
26 0
|
4月前
|
Ubuntu 安全 算法
Ubuntu通过gpg指令生成并本地密钥文件
GPG 是GNU Privacy Guard的缩写,是一个开源的加密软件,主要用于数据的安全性和隐私保护。GPG 是基于 OpenPGP 标准的实现,该标准定义了一种用于加密、签名和验证数据的标准格式。今天我们的实验就是在本地产生一个密钥文件。
59 0
|
4月前
|
Kubernetes NoSQL Linux
Ubuntu18.04 gRPC编译安装
Ubuntu18.04 gRPC编译安装
|
4月前
|
存储 Ubuntu 开发工具
ffmpeg笔记(二)windows下和ubuntu-16.04下ffmpeg编译
ffmpeg笔记(二)windows下和ubuntu-16.04下ffmpeg编译