以前的学习笔记,总记不住,粘过来方便查看
获得帮助
man gcc
info gcc
----------------------------------------------------------------------
编译过程
源文件->预处理->中间文件gcc -E test.c -o test.i
中间文件->编译->汇编文件gcc -S test.i -o test.s
汇编文件->转换->二进制代码gcc -c test.s -o test.o
二进制代码->链接->可执行文件gcc test.o -o test
---------------------------------------------------------------------
编译多个源文件
gcc-o test testmain.c test1.c test2.c
编译testmai.ctest1.c test2.c成为test可执行文件
---------------------------------------------------------------------
常用gcc选项
语法:gcc[options] [filenames]
-
-c:只编译,不链接成可执行文件
-
-ooutput_filename :确定输出文件名为output_filename,若无名称,默认名a.out
-
-g:产生调试器gdb所需要的信息,需要调试时要启动这个选项
-
-O:优化代码,使可执行文件效率高,但编译速度要慢
-
-O2:进一步优化代码
-
-Wall:显示警告信息
-
-w:关闭所有警告
-
-Idirname:将dirname目录加入到关文件目录列表中(I指Include)
-
-Ldirname:告诉系统先在dirname目录查找库文件,然后再在系统默认位置(usr/lib)查找
-
-lname:指示编译器,链接时装载libname.a函数库