本文主要是介绍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
这篇关于gcc make cmake例程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!