Linux cmake 初窥【1】

news2024/9/25 9:29:54

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 主要是用来描述工程结构

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 如下

#!/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 执行编译脚本

chmod +x build.sh
./build.sh

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

4.4 编译程序

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

cd build && make 

 

至此,大功告成 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1615809.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

windows ubuntu 子系统:肿瘤全外篇,bam质控

各个环节的质控, raw和clean都要质控, 比对的各环节的bam文件都要质控, 使用qulima对wes的比对bam文件总结测序深度及覆盖率。 samtools flagstat L1_recalibrated_reads.bam 该命令将输出 BAM 文件的一些统计信息,包括总读取数、…

双周总结#008 - AIGC

本周参与了公司同事对 AIGC 的分享会,分享了 AIGC 在实际项目中的实践经验,以及如何进行 AIGC 的落地。内容分几项内容: 什么是 AIGCAIGC 能做什么AIGC 工具 以年终总结为例,分享了哪些过程应用了 AIGC,以及 AIGC 落地…

使用QQ邮箱进行登录验证

使用场景不多说,接下来直接看实现~ 登录到QQ邮箱,进入设置 打开IMAP/SMTP服务,记得把授权码记录下来,后面配置文件中需要用到 新建application的配置文件 spring:mail:# 指定邮件服务器地址host: smtp.qq.comusername: 你自己的q…

什么是SSRF攻击?该如何防御SSRF攻击?

随着网络安全形式日益严峻,各式各样的攻击频繁发生。当前,应用程序为了给用户提供更多更方便的功能,从另一个URL获取数据的场景越来越多,因此出现了一种安全漏洞攻击-SSRF。并且,由于云服务和体系结构的复杂性&#xf…

自动化测试的三种测试报告模板

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:耗时200小时精选的「软件测试」资料包 🔥 教程推荐:火遍全网的《软件测试》教程 📢欢迎点赞 👍 收藏 ⭐留言 &#x1…

《HCIP-openEuler实验指导手册》1.3Apache动态功能模块加载卸载练习

1.3.1 配置思路 mod_status 模块可以帮助管理员通过web界面监控Apache运行状态,通过LoadModule指令加载该模块,再配置相关权限,并开启ExtendedStatus后,即可使用该模块。 1.3.2 配置步骤 检查mod_status模块状态(使…

[MySQL]运算符

1. 算术运算符 (1). 算术运算符 : , -, *, / 或 DIV, % 或MOD. (2). 例 : (3). 注 : DUAL是伪表.可以看到4/2结果为小数,并不会截断小数部分.(可能与其他语言不同,比如java中,两个操作数如果是整数,则计算得到的也是整数&…

ASP.NET大文件分片上传

ASP.NET大文件分片上传,C#上传大型视频文件到服务器,解决方案,用C# 实现断点续传 (HTTP),ASP.NET实现文件夹的上传和下载,.NET使用WEBUPLOADER做大文件的分块和断点续传,ASP.NET实现文件上传和下载,完美解决…

JavaWeb--前端工程化

目录 1. 前端工程化 1.1. 概述 1.2. 前端工程化实现技术栈 2. ECMA6Script 2.1. es6的介绍 2.2. es6 变量 / 模版字符串 2.2.1. let 与 var 的差别 2.2.2. const 与 var 的差异 2.2.3. 模板字符串 2.3. 解构表达式 / 赋值 2.3.1. 数组解构赋值 2.3.2. 对象解构赋值 …

CFCASSL证书的网络安全解决方案

在数字化时代,网络信息安全的重要性不言而喻。随着电子商务、在线交易、远程办公等互联网活动的日益普及,确保数据传输的安全性与隐私保护成为企业和用户共同关注的焦点。在此背景下,CFCA SSL证书作为一种权威、高效的网络安全解决方案&#…

2024 应届校招经验分享(非互联网篇)

📢📢📢 2024年应届毕业生,浙江大学计算机研究生。自23年秋招开始至今,博主先后拿到了互联网行业、机械制造行业、国企央企、高校体制等多家企业和单位的数十个Offer,了解多行业中的计算机求职方向&#xff…

使用JavaScript创建数组,并对其进行冒泡排序

JavaScript创建数组方式 字面量方式:使用方括号 [] 来创建数组,并在方括号内按顺序列出数组元素。 let arr [1, 2, 3, 4, 5]; Array() 构造函数方式:使用 new Array() 构造函数来创建数组,并传入数组元素作为参数。 let arr ne…

C++设计模式:中介者模式(十五)

1、定义与动机 定义:用一个中介对象来封装(封装变化)一系列的对象交互。中介者使各个对象不需要显示的相互引用(编译时依赖 -> 运行时依赖),从而使其耦合松散(管理变化)&#xff…

Docker基础+虚拟化概念

目录 一、虚拟化简介 1、虚拟化概述 2、cpu的时间分片(cpu虚拟化) 3、cpu虚拟化性性能瓶颈 4、虚拟化工作 4.1虚拟机工作原理 4.2两大核心组件:QEMU、KVM 4.2.1QEMU: 4.2.2KVM: 5、虚拟化类型 ①全虚拟化: …

CSS布局 Flex 和 Grid

在 CSS 中,理解 flex 和 Grid 布局非常重要,今天把这两个重要知识点回顾一下。 Flexbox 弹性盒子布局 弹性布局支持 flex、inline-flex,支持块和内联。 容器 轴的概念,在 Flexbox,有主轴和侧轴的概念,轴…

基于python实现web漏洞挖掘技术的研究(django)

基于python实现web漏洞挖掘技术的研究(django) 开发语言:Python 数据库:MySQL所用到的知识:网络爬虫,SQL注入,XSS漏洞工具:pycharm、Navicat、Maven 系统的实现与漏洞挖掘 系统的首页面 此次的系统首页面是登录的页…

PLC_博图系列☞P_TRIG:扫描 RLO 的信号上升沿

PLC_博图系列☞P_TRIG:扫描 RLO 的信号上升沿 文章目录 PLC_博图系列☞P_TRIG:扫描 RLO 的信号上升沿背景介绍P_TRIG: 扫描 RLO 的信号上升沿说明参数示例 关键字: PLC、 西门子、 博图、 Siemens 、 P_TRIG 背景介绍 这是一…

卷积神经网络(CNN)对验证码图片识别案例

数据集 数据集下载 链接:https://pan.baidu.com/s/1ypNNQkR1_ZK-_KO92x6Phw?pwd6753 提取码:6753 图片1 -->NZPP 一个样本对应四个目标值 NZPP ---【13,25,15,15】 使用one-hot编码转换 第一个位置:[0,0,0,0,0,0,0,0,0,0,0,0,…

最强开源大模型Meta LIama3抢先在线体验!

4月19日Facebook母公司Meta重磅推出了其迄今最强大的开源人工智能(AI)模型——Llama 3。模型分为两种规模:8B 和 70B 参数,每种规模都提供预训练基础版和指令调优版。最强开源大语言模型Meta LIama3可以在线体验啦! G…

心理学|变态心理学健康心理学——躯体疾病患者的一般心理特点

一、对客观世界和自身价值的态度发生改变 患者除了内部器官有器质或功能障碍外,他们的自我感觉和整个精神状态也会发生变化。使人改变对周围事物的感受和态度,也可以改变患者对自身存在价值的态度。这种主观态度的改变,可以使患者把自己置于人…