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 查看程序的依赖库
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 查看程序的依赖库
相关文章推荐
- 常用Meta整理
- nodejs连接mongodb的方法
- RabbitMQ Server的安装、配置及常用命令
- hdu 4496(并查集的边删除)
- 线性代数中向量、矩阵深度理解(PartI)
- 关于oracle实例即localhost:1521/orcl中的orcl
- 论Android网络请求库——android-async-http
- 数据库应用软件
- Android通知代码
- HDU 2089 不要62 数位dp
- webService 客户端接口调用【java】
- Android Studio使用gradle打包指定包名和类的jar
- mysql Sort aborted: Out of sort memory, consider increasing server sort buffer size的解决方法
- 使用WebRTC搭建前端视频聊天室——入门篇
- vs2010使用boost库,安装
- 《构建之法》阅读笔记--2
- 项目管理工具---maven
- Android ListView与EditText共存错位
- string类的常用的几个小东西find,substr
- “百度搜索框提示”代码