g++基础知识

一、编译过程: 
1)预处理,生成.i文件 
2)转换成为汇编语言,生成.s文件 
3)汇编变为目标代码(机器代码),生成.o文件 
4)链接目标代码,生成可执行程序。  二、常用编译选项 
tips:选项必须独立给出:‘-pg’和‘-p -g’完全不同  -c:编译或汇编源文件,不做连接。 
G++ -c test.cpp输出test.o  -o file:制定输出文件为file  -Wall: 输出所有编译警告(最好加上)  -Dmacro=XXX:定义宏。  -shared:生成一个共享库文件 
g++ -shared -o libtest.so test.o  -fPIC:生成位置无关目标代码,适用于动态连接。  -llibrarytest:连接名字为librarytest的库 
真正名字是liblibrarytest.so(a) so是动态库,a是静态库。 
严格按照文件名搜索,版本号要创建软连接。 
编译搜索目录:
用户-L指定, LIBRARY_PATH,系统目录/lib  /usr/lib 
运行搜索目录:
LD_LIBRARY_PATH,ld.so.cache & /etc/ld.so.conf ,系统目录  /lib  /usr/lib 
动态库和静态库同名,优先动态库。  -Ldir:添加库文件搜索路径 -Idir(include):添加头文件搜索路径  -g:产生调试信息  -olevel:优化级别,一般用o2  三、静态库、共享库 
静态库:一些.o文件打包,在被连接后成为程序的一部分。 
编译方法 
-g++ -c test.cpp 
-ar res libtest.a test.o 
链接方法: 
-g++ -Wall -o test testMain.cpp -ltest -L./  共享库:链接的时候不会被复制到程序中。 
编译方法: 
g++ -c fPIC test.cpp	
//要动态 g++ -shared -WI, -soname, libtest.so, -o libtest.so.1.0.1 test.o 
mv libtest.so.1.0.1 /usr/lib 
sudo ldconfig & || ll /user/lib/libtest.so //创建一个软连接。     
链接方法:
g++ -o test test.cpp ./libtest.so -ldx_cxx  四、常用命令 
ldd:显示程序依赖的同台共享库。  
file:查看文件格式信息。  
ldconfig:在搜寻目录下搜索出可以共享的动态链接库 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/352191.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何:使用Json插入数据库并从中读取

在本文中,我们将为Speedment创建一个插件,该插件使用Gson生成序列化和反序列化逻辑,从而使其在数据库实体和JSON字符串之间进行映射非常容易。 这将有助于展示Speedment代码生成的可扩展性,同时探索Gson库的一些很酷的功能。 Spe…

C语言pow()函数:求x的y次方(次幂)

1、头文件:#include2、原型:double pow(double x, double y);pow() 函数用来求 x 的 y 次幂(次方) pow()用来计算以x 为底的 y 次方值,然后将结果返回。设返回值为 ret,则 ret xy。 3、可能导致错误的…

本周学习总结JAVA

6. 为如下代码加上异常处理 byte[] content null; FileInputStream fis new FileInputStream("testfis.txt"); int bytesAvailabe fis.available();//获得该文件可用的字节数 if(bytesAvailabe>0){content new byte[bytesAvailabe];//创建可容纳文件大小的数组…

Day18 226翻转二叉树 101对称二叉树 100相同的树 572另一棵树的子树

226 翻转二叉树 递归前序遍历和后序遍历: class Solution { public:void swap(TreeNode*&a,TreeNode*&b){TreeNode*tmp a;a b;b tmp;}void reverseTree(TreeNode* cur){if(curnullptr) return;swap(cur->left,cur->right);reverseTree(cur->l…

python删除列表中字符串_python - 删除字符串中的字符列表

如果您正在使用python2并且您的输入是字符串(不是unicodes),那么绝对最好的方法是remove_chars_translate_bytes:>>> chars_to_remove [., !, ?]>>> subj A.B!C?>>> subj.translate(None, .join(chars_to_remove))ABC否则…

C语言的格式控制符问题

写C程序遇到这样一个问题,定义了double变量,printf输出却要%f。一直以为应该用%lf,事实上VC6.0用%lf会报错。原因还要在探究。 贴吧有人说:double变量,scanf时必须用%lf,printf时要用%f或者%lf(…

php无法用mail函数发送邮件之原因

[导读]PHP 需要一个已安装且正在运行的邮件系统&#xff0c;以便使邮件函数mail()可用。所用的邮件系统程序通过在 php.ini 文件中进行设置。用如下代码发送邮件&#xff0c;可总是发送失败。 [php] view plaincopyprint? 01.<?php 02.$to "xxxxxxxxqq.com";…

Linux内核设计与实现 总结笔记(第五章)系统调用

系统调用 内核提供了用户进程和内核交互的接口&#xff0c;使得应用程序可以受限制的访问硬件设备。 提供这些接口主要是为了保证系统稳定可靠&#xff0c;避免应用程序恣意妄行。 一、内核通信 系统调用在用户空间进程和硬件设备之间添加中间才能。作用有三&#xff1a; 为用户…

爬虫软件python彻底卸载_Python爬虫实践:如何优雅地删除豆瓣小组的帖子

前言文章起源于自己的一个需求&#xff1a;想要删除掉自己的若干个小号在豆瓣小组上的发帖及回复记录。这是一件看似简单的事情&#xff0c;但是一遍一遍的重复操作实在让我感到非常绝望&#xff0c;特别是删除自己的回复时&#xff0c;有时候回复的帖子的回复有好几十页&#…

高斯卷积核如何生成 C语言实现

对于学图像专业的人来说&#xff0c;对图像进行高斯滤波应该不会陌生&#xff0c;本质上就是将图像与高斯核进行卷积。 但是高斯核是如何生成的呢。matlab中有函数能自动生成高斯卷积核&#xff1a; gsfspecial(gaussian,3,1) gs 0.0751 0.1238 0.0751 0.1238 0.…

连接MySQL数据库时常见故障问题的分析与解决

连接MySQL数据库时常见故障问题的分析与解决 初学的mysql网友好象经常会碰到mysql无法连接的错误。特开贴收集这样问题的现象和原因。 先自己扔块砖头出来。 归纳如下&#xff1a; 故障现象 : 无法连接 mysql 错误信息1 &#xff1a;ERROR 1045 (28000): Access deni…

如何判断两个平面相交_七年级下册相交线与平行线全章节复习

5.1 相交线(一)相交线两条直线相交&#xff0c;形成4个角。1、两条直线相交所成的四个角中&#xff0c;相邻的两个角叫做邻补角&#xff0c;特点是两个角共用一条边&#xff0c;另一条边互为反向延长线&#xff0c;性质是邻补角互补&#xff1b;相对的两个角叫做对顶角&#xf…

spring dao层注解_Spring– DAO和服务层

spring dao层注解欢迎来到Spring教程的第三部分。 在这一部分中&#xff0c;我们将继续编写Timesheet应用程序&#xff0c;这次我们将实现DAO层&#xff0c;业务服务并编写一些测试。 在上一部分中&#xff0c;我们定义了GenericDao接口&#xff0c;该接口告诉我们需要对实体执…

Word 2007 如何自动生成目录以及设置正文第一页?

首先&#xff0c;讲解如何生成目录。 第一步&#xff0c;设置目录的小结的题目。这个需要对一级标题&#xff0c;二级标题&#xff0c;三级标题进行设置&#xff0c;设置方法如下图所示&#xff1a; 可以点击右键&#xff0c;对标题的格式进行修改。 第二步&#xff0c;直接生成…

python 优先队列_python中使用优先队列

相信对于队列的概念大家都不会陌生&#xff0c;这种先入先出的数据结构应用很广泛&#xff0c;像一般的生产消费都会用到队列&#xff0c;关于Queue的用法介绍可以参考我之前的文章 python中的Queue与多进程&#xff08;multiprocessing&#xff09;还有栈&#xff0c;栈是一种…

JHipster入门,第2部分

所以你回来了&#xff01; 在本系列的最后一部分中 &#xff0c;我们采用了单片路线创建了一个JHipster应用程序。 这是红色药丸路线&#xff1b; 生活与您习惯的差不多。 但是也许您喜欢挑战。 也许您想超越红色药丸并尝试蓝色药丸。 在这种情况下&#xff0c;Blue Pill是微服…

由于html元素加载导致的问题

js中要求执行的事件是在完全加载完&#xff0c;但由于本地环境测试一直没发现出问题&#xff0c;在上线后由于网络延迟导致元素加载慢&#xff0c;而事件执行完&#xff0c;没达到预期目标。 这时就需要用到属性 readyState readyState 属性返回当前文档的状态&#xff08;载入…

Linux下MySQL数据库常用基本操作 一

1、显示数据库 show databases; 2、选择数据库 use 数据库名; 3、显示数据库中的表 show tables; 4、显示数据表的结构 describe 表名; 5、显示表中记录 SELECT * FROM 表名 6、建库 create databse 库名; 7、建表 create table 表名 (字段设定列表)&#xff1b;mysql> cr…

C语言读取txt文档中的数据

1.说明 txt文档中的数据格式&#xff1a;前后数据用空格隔开&#xff1b;数据来源&#xff1a;matlab读取彩图的R、G、B三层的像素值&#xff0c;分别存放在三个txt文档中&#xff0c;用C读取到一维数组。动态申请数组&#xff0c;还是需要预先知道数组的大小&#xff0c;比静态…

cpickle支持的python版本_Python序列化模块pickle和cPickle

Python的序列化是指把变量从内存中变为可以储存/传输的数据/文件的过程. 在Python中叫pickling&#xff0c;在其他语言中也被称之为serialization&#xff0c;marshalling&#xff0c;flattening等等&#xff0c;都是一个意思。序列化之后&#xff0c;就可以把序列化后的内容写…