Linux cmake 初窥【1】

1.开发背景

linux 下编译程序需要用到对应的 Makefile,用于编译应用程序,但是 Makefile 的语法过于繁杂,甚至有些反人类,所以这里引用了cmake,cmake 其中一个主要功能就是用于生成 Makefile,cmake 的语法更友好。

2.开发需求

编写 cmake 编译最基础的应用程序

3.开发环境

ubuntu 20.04

4.实现步骤

4.1 准备源码文件

工程目录

主要包括 main.cpp、func.cpp 和 func.h,当然还是少不了 cmake 的关键脚本 CMakeLists.txt,CMakeLists.txt 主要是用来描述工程结构

bash 复制代码
cmake_minimum_required(VERSION 2.8.11)

# 编译过程打印信息
message("cmake show message")           # 打印信息
#message(SEND_ERROR "Error Show")       # 打印错误信息 可以显示当前位置行数

# 定义工程名 暂时未见起作用
project(projectName)

# 指定编译工具 X86 还是 ARM
#SET(CMAKE_CXX_COMPILER    arm-linux-gnueabihf-g++)
SET(CMAKE_CXX_COMPILER    g++)

# 添加执行文件 1、多次调用 可以生成多个可执行文件
add_executable( main
                main.cpp
                func.cpp
              )

4.2 准备编译脚本

准备编译脚本 build.sh 如下

bash 复制代码
#!/bin/bash

echo "compile file"
if [ ! -d "./build/" ]; then
    # 没有文件夹 创建文件夹
    echo "no build direct"
    mkdir build
else
    # 存在文件夹 删除文件夹内容
    echo "already build direct"
    rm ./build/* -r
fi

cmake -B build

4.3 执行编译脚本

bash 复制代码
chmod +x build.sh
./build.sh

如图所示,生成的文件保存在 ./build 文件夹下,其中包括我们需要的 Makefile

4.4 编译程序

执行到这里,我们可以进入 build 文件夹下执行熟悉的 make 操作了

bash 复制代码
cd build && make 

至此,大功告成

相关推荐
麟城Lincoln1 小时前
【Linux-云原生-笔记】Apache相关
linux·笔记·云原生·apache·webserver
ZZZKKKRTSAE1 小时前
玩转rhel9 Apache
linux·运维·服务器·apache·web
Z_zz_Z___1 小时前
DNS协议解析过程
linux·服务器·网络
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ1 小时前
Linux 下使用 vim 文本编辑器时的操作指令
linux·运维·vim
百锦再1 小时前
Rider 全面解析:跨平台 .NET IDE 的核心技术与高效实践指南
linux·ide·.net·sdk·core·rider
程序员JerrySUN2 小时前
一文理解缓存的本质:分层架构、原理对比与实战精粹
java·linux·开发语言·数据库·redis·缓存·架构
hryyx2 小时前
Linux磁盘限速(Ubuntu24实测)
linux·运维·服务器
阿巴~阿巴~2 小时前
Linux进程状态实战指南:转换关系、监控命令与状态解析
linux·运维·服务器
禁默3 小时前
解码冯・诺依曼:操作系统是如何为进程 “铺路” 的?
linux·冯诺依曼
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ3 小时前
linux打包指令和移动指令
linux·运维·服务器