常见参数
| |
-idir | 指定头文件路径。 |
-llibrary | 指定库library |
-Ldir | 定制编译的时候,搜索库的路径。 |
-Wl,-rpath-link=<library_dir> | 定制编译的时候,搜索库的路径。 |
-Wl,-rpath=<library_dir> | 定制运行的时候,搜索库的路径。 |
-o | 定制目标名称,缺省的时候gcc 编译出来的文档是a.out |
-O0 -O1 -O2 -O3 | 编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高. |
-shared | 此选项将尽量使用动态库,所以生成文档比较小,需要提供动态库。 |
-static | 此选项将禁止使用动态库,所以,编译出来的东西,一般都很大。 |
-std | 指定C标准,如-std=c99使用c99标准,-std=gnu99,使用C99 再加上 GNU 的一些扩展。 |
-m32 | 程序可以同时在32位和64为机器上运行,如果使用-m64只能在64位机器. |
PS:
-Wl选项告诉编译器将后面的参数传递给链接器。
其他参数
-as-needed | 忽略链接时没有用到的动态库 |
--no-as-needed | 不忽略链接时没有用到的动态库 |
-Wl,option | 把选项 option 传递给连接器,如果 option 中含有逗号,就在逗号处分割成多个选项 |
-c | 用于把源码文件编译成 .o 对象文件,不进行链接过程 |
-Wall | 生成常见的所有告警信息,且停止编译,具体是哪些告警信息,请参见GCC手册,一般用这个足矣! |
-w | 关闭所有告警信息 |
-fPIC | 用于生成位置无关的代码 |
-v | (在标准错误)显示执行编译阶段的命令,同时显示编译器驱动程序,预处理器,编译器的版本号 |