Cmake编译工程

news/2024/9/23 7:39:18/

Cmake目录结构:项目主目录中会放一个CmakeList.txt的文本文档,后期使用cmake指令时候,依赖的就是该文档

1.包含源文件的子文件夹包含Cmakelist.txt文件时,主目录的Cmakelists.txtx要通过add_subdirector添加子目录

2.包含源文件的子文件夹不包含Cmakelist.txt文件时,子目录编译规则,体现在目录中的CMakeLists.txt

7.8.1

1.内部构建:不推荐使用

内部构建会在主目录下,产生一大推中间文件,这些中间文件并不是我们最终所需要的,和工程文件放在一起时,会显得比较杂乱无章

##内部构建

#在当前目录下,编译主目录中的CMakeList.txt文件 文件生成Makefile文件

#执行make命令,生成目标文件

make

2.外部构建:推荐使用

将编译输出的文件与源文件放在不同的目录下,进行编译,此时,编译生成的中间文件,不会跟工程源文件进行混淆

##外部构建步骤

#1.在当前目录下,创建一个build文件,用于存储生成中间文件

mkdir build

#2.进入build文件夹内

cd build

#3.编译上一级目录中的Cmakelists.txt,生成Makefile文件及其他文件

cmake  ..  #..表示上一级目录

#4.执行make命令,生成可执行程序

make

7.7Cmake代码实践

7.7.1 同一目录下的文件进行编译

2.CMakelist.txt文件

3.内部构建

7.7.2 分文件编译

1.头文件

#ifndef SWAP_H
#define SWAP_H#include<iostream>
//声明一个交换
class MY_swap
{
private:int a;int b; 
public:MY_swap(int a,int b){this->a=a;this->b=b;}void run();void printInfo();};#endif

2.源文件

#include"swap.h"
#include<iostream>
using namespace std;void MY_swap::run()
{int temp=a;a=b;b=temp;
}void MY_swap::printInfo()
{cout<<"a="<<a<<endl;cout<<"b="<<b<<endl;
}

4.分文件编译使用g++编译器生成可执行

5.创建工程管理文件CmakeList.txt


http://www.ppmy.cn/news/1508917.html

相关文章

8月13日学习笔记 LVS

一.描述以及工作原理 1. 什么是LVS linux virtural server的简称&#xff0c;也就是linxu虚拟机服务器&#xff0c;这是一个 由章文嵩博士发起的开源项目&#xff0c;官网是 http://www.linuxvirtualserver.org,现在lvs已经是linux内核标 准的一部分&#xff0c;使用lvs可以达…

如何获取VS Code扩展的版本更新信息

获取VS Code 扩展的版本更新的需求 因为企业内部有架设私有扩展管理器的要求&#xff0c;但是对于一些官方市场的插件&#xff0c;希望可以自动获取这些扩展的更新并上传至私有扩展管理器。于是就有了本篇介绍的需求&#xff1a; 通过API的方式获取VS Code 扩展的更新。 关于…

day02--HTML CSS

一、HTML表单 表单的作用是用于采集用户再页面上填入的数据&#xff0c;并发送给后端服务器&#xff0c;经常用于用户注册、登录、xx信息添加、xx信息修改 1.1表单 1、input表示文本框 type属性&#xff1a;负责配置不同的输入框类型 text&#xff1a;普通文本框 password&…

C++ 语言特性01 - 基本数据类型

目录 0. 概述: 1. C++ 中基本数据类型及位宽(Bits) 2. C++ 中基本数据类型的取值范围 ​3. 无符号和有符号整数表示 4. 定点数表示 5. 浮点数表示 6. C++ 11 新增的数据类型 long long 0. 概述: 本文介绍下C++中的基本数据类型,它是C++编程基础,应理解数据类型的位宽…

【微前端中常见的问题及其解决办法】

随着前端技术的飞速发展&#xff0c;大型应用系统的复杂性和规模性日益增加&#xff0c;传统的单体前端架构逐渐暴露出维护成本高、升级困难、技术栈单一等问题。为了应对这些挑战&#xff0c;微前端&#xff08;Micro-Frontends&#xff09;作为一种新的架构模式应运而生。微前…

全网最适合入门的面向对象编程教程:36 Python的内置数据类型-字典

全网最适合入门的面向对象编程教程&#xff1a;36 Python 的内置数据类型-字典 摘要&#xff1a; 字典是非常好用的容器&#xff0c;它可以用来直接将一个对象映射到另一个对象。一个拥有属性的空对象在某种程度上说就是一个字典&#xff0c;属性名映射到属性值。在内部&#…

模拟三层--控制层、业务层和数据访问层

三层的概念:https://developer.aliyun.com/article/1390024 一、新建一个项目 我新建好的项目名为spring__ioc_02,然后在 src-main-java 下建立三层&#xff08;数据访问层、业务层和控制层&#xff09;的包 dao、service 和controller、并在包下建立相应的接口和实现类 Proje…

如何构建高效且实用的编程学习笔记系统

目录 一、明确目标二、选择合适的工具示例&#xff1a;使用Notion构建笔记系统 三、记录技巧1. 精简原则2. 结构化思维3. 多媒体辅助4. 实践为主 四、复习与更新1. 定期复习2. 动态更新3. 分享交流 五、总结 在编程学习的道路上&#xff0c;每一位开发者都会遇到各种各样的挑战…