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 once

int 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
    #命令前是TAB
	g++ 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.cpp
	g++ -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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值