了解 gcc、make、cmake 命令

81 阅读1分钟

gcc/g++命令使用

新建 hello_world.cpp 文件,内容如下:

#include <iostream>

int main()
{
    std::cout << "Hello, world!" << std::endl;

    return 0;
}

gcc/g++ 命令的参数:

-o:指定生成的输出文件。 
-E:仅执行预处理操作。 
-S:将源代码转换为汇编代码。 
-c:仅执行编译操作,不进行链接操作。

备注:更多参数请看 Option Summary (Using the GNU Compiler Collection (GCC))

以下示例编译 c++ 代码:

// 生成可执行程序
g++ hello_world.cpp -o hello_world

// 仅对源代码执行预处理操作
g++ -E hello_world.cpp -o hello_world.i

// 将源代码转换为汇编代码(可忽略 -o 参数)
g++ -S hello_world.cpp -o hello_world.s

// 生成二进制文件,不进行链接操作(可忽略 -o 参数)
g++ -c hello_world.cpp -o hello_world.o

// 仅执行汇编操作,不进行编译操作(可忽略 -o 参数)
g++ -S hello_world.i -o hello_world.s

// 仅执行编译操作,不进行链接操作(可忽略 -o 参数)
g++ -c hello_world.s -o hello_world.o

// 执行链接操作,生成可执行程序
g++ hello_world.o -o hello_world

make命令使用

新建 Makefile 文件,内容如下:

CC=g++
hello_world:hello_world.o
	$(CC) -o hello_world hello_world.o

备注:上述第三行的缩进是 TAB 字符。

使用 make 命令生成可执行程序:

make

备注:官方手册 GNU Make Manual - GNU Project - Free Software Foundation

cmake命令使用

新建 CMakeLists.txt 文件,内容如下:

cmake_minimum_required(VERSION 3.10)
project(hello_world_demo)
add_executable(hello_world_demo hello_world.cpp)

备注:官方指南 CMake Tutorial — CMake 3.28.1 Documentation

调用 cmake 命令:

mkdir build
cd build
cmake ..
cmake --build .

参考资料

  • Windows 操作系统可点击 MinGW-w64 下载安装包,对于 Win10 及以上版本,可考虑 x86_64-13.2.0-release-posix-seh-ucrt-rt_v11-rev0.7z 格式命名的安装包。
  • MinGW-w64 的 bin 目录下有 mingw32-make.exe,可以复制份该程序并命名成 make.exe。
  • 非 Windows 操作系统可点击 GCC Binaries 下载对应的安装包。
  • 点击 Download CMake 下载 cmake 安装包。