linux c++的编译器g++基本使用

g++是 linux下c++的编译器,在执行编译工作的时候,总共需要4步
1.预处理,生成.i的文件
2.将预处理后的文件不转换成汇编语言,生成文件.s
3.有汇编变为目标代码(机器代码)生成.o的文件
4.连接目标代码,生成可执行程序
g++ 编译c++经常使用的参数:
-c
只编译,不连接。例如: g++ -c helloworld.cpp
只生成helloworld.o不连接
-o
指定输出文件名。例如:g++ -c helloworld.cpp -o abc.o
默认是生成helloworld.o,用-o abc.o以后,就生成的是abc.o
-I
附加一个包函头文件的路径。例如:g++ helloworld.cpp -I"/usr/helloworld/include"
-l
小的L, 附一个库,例如要使用libabc.so 就g++ helloworld.cpp -labc
-L
添加一个库的路径,例如 g++ hello.cpp -L"/usr/hello/lib" -labc
-shared
生成动态库文件,例如: g++ -shared hellp.cpp -o libhello.so
调用动态库的时候有几个问题会经常碰到,有时,明明已经将库的头文件所在目录通过include进来了,库所在文件通过 “-L”参数引导,并指定了“-l”的库名,但通过ldd命令察看时,就是死活找不到你指定链接的so文件。其实编译链接上了共享库不代表执行时可以找到。所以“-L”什么的对执行没有用,你需要指明共享库的路径。方法有三个:
a.修改 LD_LIBRARY_PATH,指明共享库的路径。LD_LIBRARY_PATH:这个环境变量指示动态连接器可以装载动态库的路径。在终端下使用如下命令:
[root@localhost sharelib]# export LD_LIBRARY_PATH = . [root@localhost sharelib]# export LD_LIBRARY_PATH = your lib dir export
b.通过/etc/ld.so.conf文件来指定动态库的目录。然后运行ldconfig命令更新搜索共享库的路径。通常这个做法就可以解决库无法链接的问题并且一劳永逸。
c.或者把库文件拷贝到/lib下,然后ldconfig就ok了。这个方法有的取巧,且破坏原库文件的纯洁性,不应是首选方法。
修改/etc/ld.so.conf文件,然后调用 /sbin/ldconfig需要有root权限,如果没有root权限,那么只能采用输出LD_LIBRARY_PATH的方法了。
linux下文件的类型是不依赖于其后缀名的,但一般来讲:
.o,是目标文件,相当于windows中的.obj文件
.so 为共享库,是shared object,用于动态连接的,和dll差不多
.a为静态库,是好多个.o合在一起,用于静态连接
.la为libtool自动生成的一些共享库,主要记录了一些配置信息。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# linux
# c++的编译器g++
# c++的编译器g++的使用方法
# c++的编译器g++使用详解
# 在Linux系统下如何编译并执行C++程序
# Linux/Manjaro如何配置Vscode的C/C++编译环境
# 解析Linux下C++编译和链接
# Linux配置C++11编译环境的方法
# Linux环境使用g++编译C++方法总结
# 在Linux下编译C或C++程序的教程
# Linux下如何编译和执行c/c++程序
# 的是
# 头文件
# 多个
# 上了
# 找不到
# 不代表
# 希望能
# 如果没有
# 有几个
# 汇编语言
# 谢谢大家
# 应是
# 于其
# 可以找到
# 进来了
# 要使
# 可执行
# 自动生成
# 就可以
# 不转
相关文章:
如何在建站主机中优化服务器配置?
如何批量查询域名的建站时间记录?
如何确保FTP站点访问权限与数据传输安全?
焦点电影公司作品,电影焦点结局是什么?
建站主机选购指南:核心配置优化与品牌推荐方案
小说建站VPS选用指南:性能对比、配置优化与建站方案解析
免费ppt制作网站,有没有值得推荐的免费PPT网站?
高防服务器租用如何选择配置与防御等级?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
网站制作培训多少钱一个月,网站优化seo培训课程有哪些?
网站插件制作软件免费下载,网页视频怎么下到本地插件?
南京网站制作费用,南京远驱官方网站?
如何通过VPS搭建网站快速盈利?
文字头像制作网站推荐软件,醒图能自动配文字吗?
导航网站建站方案与优化指南:一站式高效搭建技巧解析
简单实现Android验证码
建站主机是什么?如何选择适合的建站主机?
如何在万网开始建站?分步指南解析
如何用PHP快速搭建CMS系统?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
如何用腾讯建站主机快速创建免费网站?
子杰智能建站系统|零代码开发与AI生成SEO优化指南
如何在宝塔面板中创建新站点?
C++如何编写函数模板?(泛型编程入门)
定制建站平台哪家好?企业官网搭建与快速建站方案推荐
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
如何确认建站备案号应放置的具体位置?
建站为何优先选择香港服务器?
,sp开头的版面叫什么?
如何选购建站域名与空间?自助平台全解析
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
Swift中循环语句中的转移语句 break 和 continue
如何选择PHP开源工具快速搭建网站?
建站之星导航如何优化提升用户体验?
如何在Tomcat中配置并部署网站项目?
如何在云指建站中生成FTP站点?
教学论文网站制作软件有哪些,写论文用什么软件
?
一键网站制作软件,义乌购一件代发流程?
公司网站制作价格怎么算,公司办个官网需要多少钱?
如何规划企业建站流程的关键步骤?
建站之星后台密码遗忘如何找回?
网站制作需要会哪些技术,建立一个网站要花费多少?
哈尔滨网站建设策划,哈尔滨电工证查询网站?
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
建站之星如何一键生成手机站?
简易网站制作视频教程,使用记事本编写一个简单的网页html文件?
宝华建站服务条款解析:五站合一功能与SEO优化设置指南
建站DNS解析失败?如何正确配置域名服务器?
*请认真填写需求信息,我们会在24小时内与您取得联系。