GCC食用指北
简介
GCC是源自GNU项目的一个开源[[C·C++|C/C++]]编译器。和它同样出自GNU的还有GNU/Linux。关于GCC的说明,如果你使用的是Linux,那么其实在安装的时候,它的使用手册也已经被释放到你的电脑上了。只需要键入
1 | root@xeonds:~# man gcc |
即可阅读它的使用手册(不过是全英文版的)。在文章最后,我会贴出我个人翻译的版本。
用法
一般用法很简单。只需输入:
1 | root@xeonds:~# gcc hello.c |
即可。如果没有报错,则不会有任何输出。此时会在当前目录生成a.out
文件,即目标程序。
如果想更改目标文件的文件名,你还可以这么调用:
1 | root@xeonds:~# gcc hello.c -o hello.exe |
最终会生成hello.exe
文件。
常见问题
undefined reference to ‘dlopen’
1 | $ gcc DBSim.c |
解决方案:
- 头文件添加:
#include <dlfcn.h>
- 编译选项里加
-ldl
即:gcc DBSim.c -o DBSim -ldl
中文版文档(个人翻译)
名称
gcc - 源于GNU项目的C/C++编译器
概要
1 | gcc [-c|-S|-E] [-std=standard] |
只有最常用的选项被列出;其余选项请参阅后文。 g++接受和gcc几乎相同的选项。
描述
当你调用GCC时,它通常会进行预处理,编译,汇编和链接操作。这些“全部的”选项允许你将这个过程停止到中间阶段。例如,选项**-c
**告诉编译器不要运行链接器。于是输出就由汇编器生成的object文件构成。
其他的选项被传递给一个或更多个编译阶段。一些选项控制预处理器,另一些选项控制编译器。然而其他的一些选项控制汇编器和链接器;它们中大多数未在此处列出,因为你极少会用到它们。
大多数你可以对GCC使用的命令行参数对于C程序而言都很有用;当一个参数只对一个语言(C++)有用时,说明文档会清楚地指出来。如果一个参数的描述没有提到源语言,那么你就可以在所有的支持语言中使用它。
运行GCC的一般方式是运行可执行程序gcc
,或者当你运行交叉编译时是machine-gcc
,又或者运行machine-gcc-version
来执行某一特定版本的GCC。当你编译C++程序时,你应当使用g++
来调用GCC。