当前位置: 首页 > news >正文

gcc make cmake例程

main.cpp文件:

#include <iostream>
#include "utils.h"int main(void) {int a = 1;int b = 2;int c = AddFunc(a, b);std::cout<< c <<std::endl;return 0;
}

utils.h文件:

#pragma onceint AddFunc(int a, int b);

utils.cpp文件:

#include "utils.h"int AddFunc(int a, int b) {return a+b;
}

gcc编译

GCC:GUN Compiler Collection,GNU编译工具集,包含有C、C++、java等语言的编译器,是一个工具合集。

gcc、g++:GNU C/C++ Compiler,GNU C/C++ 语言编译器,包含在GCC中。一般编译c文件用gcc,cpp文件用g++。

编译和运行:

g++ main.cpp utils.cpp -o main.out
./main.out

make

make是一个命令工具,不是像gcc一样的编译器层面的概念,根据Makefile文件中定义的命令来执行单个或多个文件的编译或其他工作。Makefile文件同样是调用gcc等编译器来编译。文件少手写Makefile尚可,多文件可以使用自动化构建工具CMake自动生成Makefile文件。

make默认执行Makefile的第一条指令,其他指令的顺序任意,make执行时会自动判断依赖。make是增量编译,相比单独执行gcc编译指令的全量编译可加快编译速度。

编写Makefile文件:

#可选定义变量
main_file = main.cpp#生成可执行文件,格式:目标:目标所依赖的文件
main.out: main.o utils.o#命令前是TABg++ main.o utils.o -o main.out#编译 main.cpp到目标代码
main.o: $(main_file)g++ -c $(main_file) -o main.o#编译 utils.cpp到目标代码
utils.o: utils.cppg++ -c utils.cpp -o utils.o# 清理
.PHONY : clean
clean:rm -f *.o main.out

CMake

CMake是一个跨平台的自动化构建工具,可以根据不同平台、不同编译器,生成相应的构建文件,如Makefile文件或Visual Studio项目文件,以便后续在不同平台、编译器上执行后续的编译、链接等操作。CMake通过CMakeLists.txt文件定义项目的构建规则、依赖关系、编译选项等。

CMakeLists.txt:

#指定最低版本或范围
cmake_minimum_required(VERSION 3.16.3)
#定义项目名称、自定义版本、使用的语言
project(CMake_demo VERSION 1.0.0 LANGUAGES CXX)
#目标文件名称和源文件
add_executable(main.out main.cpp utils.cpp)
mkdir build && cd build
cmake ..
make

http://www.mrgr.cn/news/21786.html

相关文章:

  • 70-java write类应用场景
  • 【重学 MySQL】十六、算术运算符的使用
  • 【数据库实战】1_Oracle_命中关联人或黑名单或反洗钱客户
  • MySql约束练习
  • 【JAVA】第四天
  • 【Linux】萌新看过来!一篇文章带你走进Linux世界
  • python读取pdf内容写入到Excel表格中
  • 基于JSP的实验室管理系统
  • OpenCV图像分割教程
  • java实现,PDF转换为TIF
  • 双指针(5)_单调性_有效三角形的个数
  • | ^
  • 快速排序的深入优化探讨
  • 『功能项目』战士的A键连击【33】
  • 嵌入式面试经典30问:二
  • 孤儿进程、僵尸进程、守护进程(精灵进程)
  • 【内网】ICMP出网ew+pingtunnel组合建立socks5隧道
  • Open-Sora代码详细解读(1):解读DiT结构
  • CP AUTOSAR标准之EthernetInterface(AUTOSAR_SWS_EthernetInterface)(更新中……)
  • 数字逻辑设计基础