1. 什么是g++
g++ 是GNU 编译器套件(GCC)中用于编译 C++ 程序的命令。下面介绍一些基本的使用方法。
2. 基本使用方法
(1)基本的编译
g++ source.cpp -o executable
这个命令将 source.cpp 编译成一个可执行文件,并将可执行文件命名为 executable 。你可以将 -o 后面的名称更改为你喜欢的任何名称。
(2)指定C++版本
g++ -std=c++11 source.cpp -o executable
使用 -std 参数,可以指定要使用的 C++ 标准版本。
(3)调试信息
g++ -g source.cpp -o executable
使用 -g 选项将调试信息添加到任何可执行文件中,以便在调试程序时可以查看源代码。
(4)多个源文件的编译
g++ source1.cpp source2.cpp -o executable
可指定多个源文件,它们将被编译并链接在一起生成一个可执行文件。
(5)编译并运行
g++ source.cpp -o executable && ./executable
使用 && 运算符可以在编译成功后立即运行生成的可执行文件。
(6)链接外部库
g++ source.cpp -o executable -llibrary_name
使用 -l 选项来链接外部库,将 library_name 替换为实际使用的库名。
(7)指定头文件搜索路径
g++ -I/path/include source.cpp -llibrary_name
使用 -I 选项可指定头文件的搜索路径。使用时将 /path/include 替换为头文件存在的路径。
(8)指定库文件搜索路径
g++ -L/path/lib -llibrary_name source.cpp -o executable
使用 -L 选项可以指定库文件的搜索路径。使用时将 /path/lib 替换为库文件存在路径。
(9)预处理并输出结果
g++ -E source.cpp -o output.cpp
使用 -E 选项会执行预处理并将结果输出到指定文件。
(10)显示编译过程的详细信息
g++ -v source.cpp -o output_executable
使用 -v 选项可以显示编译过程的详细信息,包括所调用的编译器和链接器的版本。
3. 创建静态链接库/动态链接库
(1)生成静态链接库
ar rvs 是用于创建静态库的命令,它不直接属于 g++ 编译器,而是属于GNU工具集中的 ar 工具。在这个命令中:
- ar: 用于创建、修改以及从静态库中提取文件的工具。
- rvs: 是 ar 命令的选项,分别表示插入(replace)、显示详细信息(verbose)、创建索引。
具体来说,ar 命令用于将一组目标文件组合成一个静态库。这在C/C++编程中常用于将多个文件打包成一个库文件,以供链接到其他程序中。
例如:
ar rvs libexample.a file1.cpp file2.cpp
这个命令会创建一个名为:libexample.a 的静态库,并将 file1.o 和 file2.o 这两个目标文件添加到库中。ar 命令的选项和使用方式可以根据实际需求进行调整。
(2)生成动态链接库
创建动态链接库通常涉及使用 g++ 编译器和 shared 选项。以下是一个创建动态链接库的基本命令示例:
g++ -shared -o libexample.so file1.cpp file2.cpp
命令中 libexample.so 为指定生成的动态链接库的输出文件名。