您的位置:首页 > 其它

gcc/g++/ldd等常用命令基本参数(整理)

2016-05-13 14:46 106 查看
1. gcc/g++

gcc -E 仅作预处理,不进行编译、汇编和链接

gcc -S 编译到汇编语言,不进行汇编和链接

gcc -c 编译为目标文件,不连接库

gcc -I /myinclude/ 作为第一个寻找头文件的目录,寻找的顺序是:/myinclude/-->/usr/include-->/usr/local/include

gcc -L /mylib/ 作为第一个寻找库文件的目录,寻找的顺序是:/mylib/-->/lib-->/usr/lib-->/usr/local/lib

gcc -l test 在上面的/mylib的路径中寻找libtest.so动态库文件(如果gcc编译选项中加入了“-static”表示寻找libworld.a静态库文件)

静态库文件是在链接阶段被嵌入到可执行程序中

gcc -c test.c -o test.o

ar -r libtest.a test.o 把目标文档归档

gcc main.c -ltest -L. -static -o test

动态库是在运行时调用

gcc -fPIC:表示编译为位置独立的代码,不用此选项的话编译后的代码是位置相关的所以动态载入时是通过代码拷贝的方式来满足不同进程的需要,而不能达到真正代码段共享的目的。

gcc -shared 该选项指定生成动态连接库(让连接器生成T类型的导出符号表,有时候也生成弱连接W类型的导出符号),不用该标志外部程序无法连接。相当于一个可执行文件

LD_LIBRARY_PATH:这个环境变量指示动态连接器可以装载动态库的路径。有root权限的话,可以修改/etc/ld.so.conf文件,然后调用 /sbin/ldconfig来达到同样的目的

export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH

2. ldd

ldd 查看程序的依赖库
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: