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

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( mainmain.cppfunc.cpp)

4.2 准备编译脚本

准备编译脚本 build.sh 如下

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

4.3 执行编译脚本

chmod +x build.sh
./build.sh

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

4.4 编译程序

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

cd build && make 

 

至此,大功告成 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虚拟局域网PPTP配置与验证

虚拟局域网PPTP配置与验证 前言PPTP服务侧安装配置REF 前言 虚拟专用网(Virtual Private Network,VPN)是一种通过公共网络建立安全的连接的技术。它能够在不同的地理位置之间建立私密的通信通道,实现远程访问网络资源的安全性和隐…

牛客NC233 加起来和为目标值的组合(四)【中等 DFS C++、Java、Go、PHP】

题目 题目链接: https://www.nowcoder.com/practice/7a64b6a6cf2e4e88a0a73af0a967a82b 解法 dfs参考答案C class Solution {public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** param nums int整型…

AI-数学-高中-39空间向量-2空间向量法(法向量)

原作者视频:【空间向量】【一数辞典】2空间向量法(重要)_哔哩哔哩_bilibili 法向量(高中阶段所有与面的关系,都可以通过法向量去证明和解答): 是空间解析几何的一个概念,垂直于平面…

【Linux】破解工具John the Ripper和端口扫描工具NMAP

一、弱口令检测---John the Ripper 1.了解 John the Ripper John the Ripper 是一款开源的密码破解工具,可使用密码字典(包含各种密码组合的列表文件)来进行暴力破解。 一款密码分析工具,支持字典式的暴力破解通过对shadow文件…

NCH WavePad for Mac:功能全面的音频编辑利器

NCH WavePad for Mac是一款功能全面的音频编辑软件,专为Mac用户设计。它集音频录制、编辑、处理和效果添加于一体,为用户提供一站式的音频解决方案。 NCH WavePad for Mac v19.16注册版下载 作为一款专业的音频编辑器,WavePad支持对音频文件进…

spring aop介绍

Spring AOP(面向切面编程)是一种编程范式,它允许开发者将横切关注点(cross-cutting concerns)从业务逻辑中分离出来,从而提高代码的模块化。在传统的对象导向编程中,这些横切关注点,…

Pandas 分组将指定列的数据转为列表或字典

分组后转为列表 语法 使用聚合函数,按照指定规则进行分组聚合 作用 对【Group】该列进行分组,分组后将【Value1】和【Value2】分别用列表进行组合,【OtherColumn】取第一个值 效果 代码 import pandas as pd# 创建一个示例DataFrame data…

STL_deque_stack_queue

Deque deque容器(双端队列) ​deque是一种双向开口的分段连续线性空间(对外号称连续,使用者无法感知它是分段的)。deque支持从头尾两端进行元素的插入和删除。deque没有容量的概念,因为它是动态地以分段连续空间组合而成的。随时…

社交媒体数据恢复:钉钉

在数字化办公日益普及的今天,钉钉作为一款综合性的企业级通讯工具,已经深入到众多企业和个人的工作与生活中。然而,在日常使用过程中,我们难免会遇到一些意外情况导致数据丢失的问题。本文将针对钉钉数据恢复这一主题,…

腾讯云轻量2核4G5M服务器优惠价格165元1年,2024年多配置报价单

腾讯云轻量2核4G5M服务器优惠价格165元1年。腾讯云服务器价格表2024年最新价格,轻量2核2G3M服务器61元一年、2核2G4M服务器99元1年,三年560元、2核4G5M服务器165元一年、3年900元、轻量4核8M12M服务器646元15个月、4核16G10M配置32元1个月、8核32G配置11…

web前端框架设计第五课-计算属性与监听属性

web前端框架设计第五课-计算属性与监听属性 一.预习笔记 1.计算属性 computed split():拆分 reverse():倒序 join():拼接 计算属性与方法,两者效果一致,但是computed 是基于它的依赖缓存,只有相关依赖发生改变时才会重新取值。而使用 met…

Skill Check: OCI Generative AI Service Deep Dive

Skill Check: OCI Generative AI Service Deep Dive