基本用法 | 解释说明 | 扩展用法 |
gcc XXX.c 或 gcc XXX.o | #生成可执行文件 | #加-o表示起个别名:gcc XXX.c -o YYY 或gcc -o YYY XXX.c 或 gcc XXX.o -o YYY 或gcc -o YYY XXX.o |
gcc -c XXX.c | #-c表示只编译不链接 | #加-o表示起个别名:gcc -c XXX.c -o XXX.o或 gcc -o XXX.o -c XXX.c |
gcc -shared -fPIC XXX.c -o libXXX.so | #生成动态链接库 | #-fPIC:表示编译为位置独立的代码,不用此选项的话编译后的代码是位置相关的所以动态载入时是通过代码拷贝的方式来满足不同进程的需要,而不能达到真正代码段共享的目的。 |
ar -cr libXXX.a XXX.o | #生成静态链接库 |
|
gcc –o main main.o libxxx.a(libxxx.so) | #静态链接库或动态链接库的使用 | #同样的,链接.c也是可以的:gcc–o main main.c libxxx.a(libxxx.so) 和gcc –o main main.c –L./ –lxxx 和 gcc -static –o main main.c –L./ –lxxx |
|
|
|
gcc编译程序时,用到的 -I -L -l 之间的区别?举例说明:(选自:Makefile中 -I -L -l区别) | ||
gcc -o hello hello.c -I /home/hello/include -L /home/hello/lib -lworld | #-I /home/hello/include表示将/home/hello/include目录作为第一个寻找头文件的目录,寻找的顺序是:/home/hello/include-->/usr/include-->/usr/local/include |
|
|
|
|