首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux创建自己的共享

由于windows和linux的本质不同,因此二者的二进制是不兼容的。 Linux操作系统支持的函数分为静态和动态,动态又称共享。...Linux系统有几个重要的目录存放相应的函数,如/lib, /usr/lib。 静态函数、动态函数 A....默认的情况,新的成员增加在库的结尾处。 s:写入一个目标文件索引到中,或者更新一个存在的目标文件索引。甚至对于没有任何变化的也作该动作。...对一个做ar s等同于对该做ranlib 动态函数的创建 gcc -shared -Wl,-soname,youLibSoname,-o youRealName a.o b.o **linux共享名称分为三段...将生成的共享copy到上级的lib,并生成linkname: cp libmycal.so.1.10 ..

2.4K10
您找到你想要的搜索结果了吗?
是的
没有找到

Linux动态(.so)和静态(.a) 的区别

linux下有两种:动态和静态(共享) 二者的不同点在于代码被载入的时刻不同。 静态的代码在编译过程中已经被载入可执行程序,因此体积比较大。...静态和动态的最大区别,静态情况,把直接加载到程序中,而动态链接的时候,它只是保留接口,将动态与程序代码独立,这样就可以提高代码的可复用度,和降低程序的耦合度。...hc@linux-v07j:~/weiming/tt> g++ -o hello.o -c hello.cpp hc@linux-v07j:~/weiming/tt> ar cqs libHello.a...  hello.o  libHello.a  main.cpp  Out1 hc@linux-v07j:~/weiming/tt> ldd Out1         linux-gate.so.1...所依赖的动态查找路径环境变量名称各不相同 UNIX版本              动态查找路径环境变量 AIX                 LIB_PATH LINUX

16.4K21

linux编译qt5.6.0静态

linux编译qt5.6.0静态 编译QT是一件比较麻烦的事情。所以如果没有必要,就不要编译了。如果你只需要使用QT的一些基本功能,那么就只编译源码目录下的qtbase目录下的东西即可。...下面所介绍的都只是在linux适用的(windows使用MinGW也可以,QT提供的MinGW安装包是32位的,需要64位的可以参考)。...提供一个我已经编译好的了 linux64位gcc编译 http://pan.baidu.com/s/1eRMnf26                 提取密码    iz39 windows64位mingw...-reduce-relocations 减少通过额外的链接器优化的重加载 (仅qt/X11 和Qt/linux嵌入式 ;实验性的;需要 GNU ld > = 2.18) -no-use-gold-linker.../unix编程, linux系统, C/C++, Qt, 开源

63330

Linux文件制作方法详解

大家好,继上节,这节我们继续讲解如何在Linux系统上创建我们需要的文件 在创建程序之前,需要先来了解GCC的一些参数,因为静态和共享需要GCC工具产生,并且两者的GCC参数不同...默认的情况,新的成员增加在库的结尾处,可以使用其他任选项来改变增加的位置。...因为在动态函数使用时,会查找/usr/lib、/lib目录下的动态函数,而此时我们生成的不在里边。我们可以通过以下方法解决此问题,其实这个问题在上一节中我们提到过,小伙伴可以回看一。...2.设置环境变量,假设libTest.so在/home/ubuntu/workspace_ex/lib/static目录下 export LD_LIBRARY_PATH=/home/linux/addsub...结束语 到目前为止,我们详细讲解了Linux制作静态、共享、以及动态加载,希望通过此文对你在Linux的认识有所帮助,那么目的就达到了

2K30

LinuxQt创建共享与链接共享详解

本次和大家分享的是在Ubuntu使用Qt生成共享以及在Qt中链接共享的方法。 共享是在Linux的称呼,在Windows被称为动态。...这块大家需要了解的是程序在编译时使用的和程序在运行时使用的需要一致,不然程序可能会闪退。而且运行时的路径如果没有设置,那么系统就会在默认的路径进行搜索,如果没找到程序直接就挂了。...那会儿的解决办法是把共享拷贝到 usr/local/lib,这样问题就没有了,拷贝后要使用ldconfig命令。...上面的错误是在运行时没有找到共享,在Linux,可以使用 ldd命令查看一个可执行程序所需的,效果如下: ? 2. 为什么在Qt中运行没有报上面的错误?...由于以前使用共享遇到过上面的问题,但是在刚刚测试共享的时候,为什么没有报错呢?是Qt将生成的共享放到Linux默认的搜索路径下了么?

5.6K20

全志Tina Linux如何编译glibc

第4行是gcc位置,第5行是make工具位置(不需要安装高版本make可以去掉),第7行是glibc版本,第12行是glibc源码路径,第13行是glibc生成文件路径,第14行是glibc编译过程产生中间文件存放路径...其中31行 --host=arm-none-linux-gnueabihf ,host填入值要和gcc匹配 ,否则会出差。 运行env.sh脚本 env.sh ....编译完成后,我们看到对应so 替换glibc,例如在我们测试demo,修改Makefile,指定到我们glibc版本路径即可 重新编译,查看对应执行文件,看到已经使用对应版本版本glibc strings...main | grep glibc 版本匹配问题 1、gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabi版本,glibc 2.29以下版本都可以编译通过...2、gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf版本,目前只在glibc 2.33编译通过,其他版本需测试。

7810

Linux实现数据每天自动备份

前两天数据操作的时候误删了几条数据,找不回了,才发现没有搞备份哇~ 所以今天加了个自动备份,记录一操作。 linux如何实现mysql数据每天定时自动备份,并删除60天内的备份文件。...1、创建备份文件: 可以根据自己的实际情况选择在哪个目录下创建文件,我这里是在data创建的backSql文件夹。..._20181229_174804.sql) 3、添加可执行权限: chmod u+x bkZjBlog.sh 添加可执行权限之后先执行一,看看脚本有没有错误,能不能正常使用; ....这个问题应该是在MySQL5.6+版本的时候就有出现,可能是为了确保数据的安全性采用的保护机制。 我出现了这个问题,但是备份还是好了。所以还没有去解决。 -bash: ....Linux很多命令还是需要去记啊,不然很不方便·~~

2.3K10

linux安装boost的完整步骤记录

前言 Boost是一个可移植、提供源代码的C++,作为标准的后备,是C++标准化进程的开发引擎之一。 Boost由C++标准委员会工作组成员发起,其中有些内容有望成为下一代C++标准库内容。...在C++社区中影响甚大,是不折不扣的“准”标准。Boost由于其对跨平台的强调,对标准C++的强调,与编写平台无关。...在linux安装过程如下: 去官方网站下载最新的:http://sourceforge.net/projects/boost/files/boost/1.47.0/ or www.boost.org...一,最简单的方法: apt-cache search boost 搜到所有的boost 然后: sudo apt-get install libboost-all-dev 安装相应的 二,编译安装...linker library paths: /home/terry/Local/boost_1_47_0/stage/lib 因为我是解压到/home/terry/Local/boost_1_46_1

2.4K41

LinuxMysql数据的基础操作

一、Mysql数据介绍Mysql数据是一种关系型数据管理系统,具有的优点有体积小、速度快、总体成本低,开源,可移植性(跨平台,在不同系统中使用),可以和开发语结合,属于轻量级数据。...二、数据相关术语介绍1.数据相关名词数据: database 表: table 行: row 列: column 索引: index 视图: view 用户: user 权限: privilege...数据中的列:表中的一个字段,所有表都是由一个或多个列组成的。表中的每一列,称为属性,字段。数据中的索引: 将表中的一个或多个字段中的数据复制一份另存,并且按特定次序排序存储。...关系型数据:关系数据系统建立了关系模型,并用它来处理数据。关系模型在表中将信息与字段关联起来(也就是schemas),存储在数据表的行和列中。数据表可以彼此关联协作存储,也很容易提取数据。...三、Mysql数据的管理1.创建数据用户①创建用户mysql> create user test@localhost identified by '123456';Query OK, 0 rows

21941

linux安装boost的完整步骤记录

前言 Boost是一个可移植、提供源代码的C++,作为标准的后备,是C++标准化进程的开发引擎之一。 Boost由C++标准委员会工作组成员发起,其中有些内容有望成为下一代C++标准库内容。...在C++社区中影响甚大,是不折不扣的“准”标准。Boost由于其对跨平台的强调,对标准C++的强调,与编写平台无关。...在linux安装过程如下: 去官方网站下载最新的:http://sourceforge.net/projects/boost/files/boost/1.47.0/ or www.boost.org 一...,最简单的办法: apt-cache search boost 搜到所有的boost 然后: sudo apt-get install libboost-all-dev 安装相应的 二,编译安装,...linker library paths: /home/terry/Local/boost_1_47_0/stage/lib 因为我是解压到/home/terry/Local/boost_1_46_1

11.1K30

linuxmysql怎么备份_Linux如何进行MySQL数据备份和导入

1),数据的备份 1.导出整个数据 mysqldump -u 用户名 -p 数据名 > 导出的文件名 例:mysqldump -u dbadmin -p myblog > /home/zhangy.../blog/database_bak/myblog.sql 2.导出一个表 mysqldump -u 用户名 -p 数据名 表名> 导出的文件名 例:mysqldump -u dbadmin -p myblog...,你如果忘了设置导出字符集的话,在导入的时候,就有可能会出问题. b,假如,你导出时设置导出时设置了utf8的编码,但是你又把你的数据现在的字符集改成了gb2312的.这样又会乱码。...2,用 source 语句 例如: mysql -u dbadmin -p use myblog; set names utf8; #这里的字符集根你的将要导入的数据的字符集一至。...source /home/zhangy/blog/database_bak/myblog.sql; 本文由职坐标整理并发布,了解更多内容,请关注职坐标数据MySQL频道!

7.5K20
领券