`

GCC相关

阅读更多
GCC 命令行详解 -L 指定库的路径 -l 指定需连接的库名:

http://www.cnblogs.com/cy163/archive/2009/03/12/1409434.html

  • -c 只执行预处理、调序和汇编。不做链接。则没main也不会报错
  • -C 预处理时,保留注释。
  • -E 预处理后中断。
  • -g 为了调试,而编译。
  • -l 将其它链接接库链接进来
  • -n 产生调试信息
  • -v 相看编译的每个步骤
  • -S 产生的汇编文件不删除
  • -shared  建立共享对象,供动态链接使用。也就是DLL
  • -static  和shared相反,建立静态对象。

http://gcc.gnu.org/install/
预处理cpp->编译->汇编assembly->链接ld

------------------------------
-Dname[=definition]
-Uname
-Idirectory[:directory[...]]

include 的搜索次序:
特定目录,如include "xxx.h"
-I指定目录
环境变量C_INCLUDE_PATH   CPATH
系统默认的include

------------------------------

RTL,寄存器传输语言,Register Transfer Language
符号表,symbol table,可以使用-as=filename.sym产生。
-Wa可以把命令选项传给汇编器,例:
gcc -Wa,-as=xx.sym,-L file.c
通过-Wa将-as是传给汇编器
这里的-L并非GCC选项,-L是指在符号表内包含局部符号。
-Wa,-as=xx.sym,-L   之间不能有空格,之间用逗号隔开。

gcc -g -Wa,-a=xx.list,-L  file.c
同时使用-g 和 -Wa,-a,输出的汇编将会和C源代码一起输出

------------------------------

.a  是archive,存档的意思
.so 是share object,共享对象的意思

libName.a,前置名称lib和后置名称.a都是标准。-l的时时候只要Name即可。

-Wa是与汇编器通信,那么
-Wl是与连接器通信,约束和-Wa一样。

gcc -Wl,-M f1.c f2.c > f.map
将输出链接脚本和链接的可执行文件“内在映像(map)”

------------------------------

-save-temps  可以保存所有中间文件
-fsyntax-only  只测试输入文件的语法是否正确。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics