linux下gccg++命令使⽤详解
1.
2.
简记
gcc and g++分别是gnu的c & c++编译器 gcc/g++在执⾏编译⼯作的时候,总共需要4步 :
1.预处理,⽣成.i的⽂件[预处理器cpp]
linux下gcc编译的四个步骤2.将预处理后的⽂件不转换成汇编语⾔,⽣成⽂件.s[编译器egcs]
3.有汇编变为⽬标代码(机器代码)⽣成.o的⽂件[汇编器as]
4.连接⽬标代码,⽣成可执⾏程序[链接器ld]
1. gcc -E source_file.c
-E,只执⾏到预编译。直接输出预编译结果。
2. gcc -S source_file.c
-S,只执⾏到源代码到汇编代码的转换,输出汇编代码。
3. gcc -c source_file.c
-c,只执⾏到编译,输出⽬标⽂件。
4. gcc (-E/S/c/) source_file.c -o output_filename
-o, 指定输出⽂件名,可以配合以上三种标签使⽤。
-o 参数可以被省略。这种情况下编译器将使⽤以下默认名称输出:
-E:预编译结果将被输出到标准输出端⼝(通常是显⽰器)
-S:⽣成名为source_file.s的汇编代码
-c:⽣成名为source_file.o的⽬标⽂件。
⽆标签情况:⽣成名为a.out的可执⾏⽂件。
5. gcc -Wall source_file.c
-W,在编译中开启⼀些额外的警告(warning)信息。-Wall,将所有的警告信息全开。
6. gcc source_file.c -L/path/to/lib -lxxx -I/path/to/include
-l, 指定所使⽤到的函数库,本例中链接器会尝试链接名为libxxx.a的函数库。
-L,指定函数库所在的⽂件夹,本例中链接器会尝试搜索/path/to/lib⽂件夹。
-I, 指定头⽂件所在的⽂件夹,本例中预编译器会尝试搜索/path/to/include⽂件夹。
7. -shared 为链接库 让编译器知道是要编译⼀个共享库
8. -fPIC(Position Independent Code) 表⽰编译为位置独⽴的代码,不⽤此选项的话编译后的代码是位置相关的所以动态载⼊时是通过代码拷贝的⽅式来满⾜不同进程的需要,⽽不能达到真正代码段共享的⽬的。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论