GCC G++选项

GCC G++选项

ID:37709954

大小:23.16 KB

页数:5页

时间:2019-05-29

GCC G++选项_第1页
GCC G++选项_第2页
GCC G++选项_第3页
GCC G++选项_第4页
GCC G++选项_第5页
资源描述:

《GCC G++选项》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、目录[-]·添加运行时共享库目录·添加include,lib的搜寻路径·g++编译时的流程·g++使用注意项·应该注意的选项·MM选项与M选项·常用选项·-Wl,-rpath·-l添加运行时共享库目录运行使用共享库的程序需要加载共享库(不同于G++编译时指定的链接库),添加共享库的步骤:1.修改文件/etc/ld.so.conf添加共享库目录2.运行ldconfig同步更新一下如:?123gedit /etc/ld.so.conf    #添加 /root/dreamlove/libldconfig添加i

2、nclude,lib的搜寻路径对所有用户有效修改/etc/profile 对个人有效则修改~/.bashrc #在PATH中找到可执行文件程序的路径。exportPATH=$PATH:$HOME/bin #gcc找到头文件的路径C_INCLUDE_PATH=/usr/include/libxml2:/MyLibexportC_INCLUDE_PATH #g++找到头文件的路径CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/include/libxml2:/MyLib

3、exportCPLUS_INCLUDE_PATH #找到动态链接库的路径LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/MyLibexportLD_LIBRARY_PATH #找到静态库的路径LIBRARY_PATH=$LIBRARY_PATH:/MyLibexportLIBRARY_PATH使用source,加载这些定义使其立即生效;或者重启g++编译时的流程·调用预编器CPP进行预处理,生成.i文件·调用编译器egcs进行汇编,生成.s文件·调用汇编器as生成目标,.o文件·调用连

4、接器ld进行链接,生成可执行文g++使用注意项用于链接库的-l选项必须放在g++选项后面,如:?123g++ -o ./tmpExec/pthread pthread.cpp -lpthread     #这个是正确的 g++ -lpthread -o ./tmpExec/pthread pthead.cpp #出错应该注意的选项MM选项与M选项生成文件的依赖关系,比如:g++-MMtestMM.cpp;将依赖关系输出到屏幕上,此时应该对其进行重定向;-MM是不会进行语法检查的。只是对源文件的includ

5、e关系进行分析得到依赖关系;如?1234567#include #include "geteth0Ip.h" int mian(){    return;}//这个漏洞百出的源文件仍然可以使用-MM获得它的依赖关系与makefile的使用: ?123$(dfiles):%.d:%.cpp    @g++   -MM  $< 

6、 sed  '$ a\tg++ -c -o $(ObjsDir)/$(patsubst %.d,%.o,$@) $<' >$(DsDir)/$@    # 使得

7、每一个 .d 文件都包含着一个完整的规则常用选项-Wl,-rpath·-Wl,-rpath=路径;该路径将会在程序运行时,用来搜索动态链接库;若'路径'是相对路径,则相对于程序所在的目录.?123456789101112131415161718# -L 指定的路径仅用于链接阶段搜索动态链接库.在运行阶段不起作用.# 所以 ./a.out 时提示找不到 liba.so,libb.so$ gcc test.c -lb -la  -L.$ ldd a.out         linux-vdso.so.1 =>

8、  (0x00007fff4b54b000)        libb.so => not found        liba.so => not found        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fd44cfc8000)        /lib64/ld-linux-x86-64.so.2 (0x00007fd44d3af000)$ ./a.out ./a.out: error while loading shared li

9、braries: libb.so: cannot open shared object file: No such file or directory # 此时通过 -Wl,-rpath 指定了运行时搜索的路径$ gcc test.c -lb -la  -L. -Wl,-rpath=.$ ldd a.out         linux-vdso.so.1 =>  (0x00007fff08da7000)        libb

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。