gcc
跳转到导航
跳转到搜索
用法
标准
警告非 C89 标准的用法:[1]
gcc -ansi -pedantic -o 可执行文件 源文件.c
在 64 位系统上编译 32 位程序
在 Arch 上需要安装这些软件包:gcc-multilib, binutils-multilib, gcc-libs-multilib。
export CC='gcc -m32'
export PKG_CONFIG_PATH='/usr/lib32/pkgconfig'
./configure \
--prefix=/usr \
--libdir=/usr/lib32
make
预编译
To see a full list of compiler defined symbols, use
gcc -dM -E - < /dev/null
调试
-g
- 包含调试符号。默认级别为 2。使用
-g3
指定级别为 3 可以调试宏
注意
文件
gcc 并不检查目标文件有几个硬链接,因此使用硬链接不是明知之举。
警告和优化
因为只有使用优化时才会进行变量跟踪,所以即使给出-Wall
,只有启用优化时才会对可能未初始化的变量进行警告。[2]
要显式标注一个未使用的变量,以免警告,可使用如下代码:
#ifdef __GNUC__
# define UNUSED __attribute__((__unused__))
#else
# define UNUSED
#endif
void foo (int UNUSED a){...}
参见
外部链接
- GCC-Inline-Assembly-HOWTO
- gcc - How to see which flags -march=native will activate? - Stack Overflow
- GCC optimization - Gentoo Wiki