
Linux/库
文章平均质量分 88
imxiangzi
这个作者很懒,什么都没留下…
展开
-
linux下使用eclipse编译、链接、动态库的学习笔记
一、创建动态链接库 1、创建工程new->project->c++ project选择Shared Library->Empty Project.输入工程名MySharedLib,点击finish,完成工程的创建。 2. 库代码的编写2.1.testa.c[cpp] view plaincopy原创 2015-05-03 19:11:32 · 5863 阅读 · 0 评论 -
linux 环境变量设置方法总结(PATH/LD_LIBRARY_PATH)
PATH和LD_LIBRARY_PATH本质都是变量,所谓变量的意思就是由别人赋值产生的,直觉往往会让我们添加和减少这个变量本身的某些路径,实际上这是不正确的。正确的做法是我们要去修改赋予这个变量数值的那些配置文件,加一条路径或者减一条。说到底变量只关乎显示,不关乎其用于显示的内容。PATH: 可执行程序的查找路径查看当前环境变量:echo $PATH 设置:转载 2015-05-18 11:12:44 · 588 阅读 · 0 评论 -
Linux下共享库中的全局变量,静态变量是否只有一份?
当有多个程序使用同一个共享库的时候,我们都知道,多个程序有多个进程,但是共享库在内存中只有一份。所以问题来了:如果我在共享库中定义了全局变量,那 么全局变量是不是也只有一份?如果是这样,那么当多个进程都在使用这个共享库的时候,就有问题了。比如:我们在共享库中定义了一个全局变量 server_inited,用来表示一个socket server是否已经启动成功了,如果这个变量是TRUE,那么,下次用转载 2015-05-20 16:13:42 · 3740 阅读 · 0 评论 -
小心两个共享库共用同一个静态库
小心两个共享库共用同一个静态库.pdf注:以下内容仅针对Linux/GCC环境,不涵盖Windows,包括Cygwin环境。下载测试代码:x.zip(和帖子的略不同,x.zip包中的全局变量是个类对象,带有构造和析构函数)推荐阅读:http://blog.chinaunix.net/uid-20682147-id-351108.html(Linux上制作可执行的共享库示例)转载 2015-05-20 16:08:43 · 3580 阅读 · 0 评论 -
Linux中的静态库、动态共享库和可加载库
这篇教程将讨论 Linux 库以及创建和使用 C/C++ 共享组件库和插件库背后的理论和哲学,同样也讨论了他们应用程序中使用的各种不同的技术和方法。这篇教程中所有的库均使用 GNU Linux编译器创建。为什么要使用库这种方式也被称为“共享组件”或“静态库”,将多个编译后的目标代码文件打包成一个单独的文件称之为库。通常来说会将可以被多个应用程序共享的 C 函数或 C++ 类以及方法转载 2015-05-20 16:03:15 · 5465 阅读 · 0 评论 -
C++又一坑:动态链接库中的全局变量
前几天我们项目的日志系统出现了一点问题,但是一直没有时间去深究。昨天在同事的帮助下,无意中猜了一种可能性,结果还真被我猜中了,于是今天就特别研究了一下,记录下来。其实主要问题是三个模块。模块 a, 静态库 a模块 b, 二进制 b, 静态引用a, 动态加载c模块 c, 动态链接库c, 静态引用a关键在于静态库a里有一个静态全局变量,没错就是我们的日志模块。原先的这个静态的模转载 2015-05-20 16:08:23 · 31129 阅读 · 5 评论 -
Linux 静态库与共享库的使用
申明: 正如题如示,本篇讲的是Linux下是静态库与共享库,而Window下的动态链接库详细情况可见这篇文章:windows动态链接库 DLL 浅析。虽然原理,思想差不多,但是细节却各有不同。一、静态库1、概念:静态库指将所有相关的目标文件打包成为一个单独的文件-即静态库文件,以.a结尾。静态库可作为链接器的输入,链接器会将程序中使用的到函数的代码从库文件中拷贝到应用程转载 2015-05-20 16:12:53 · 671 阅读 · 0 评论 -
linux下编译自己的库文件实践
有了我传的那个资料,这个就没什么用了,那个太经典了,这个就是记录我自己的实践。:-) linux下文件的类型是不依赖于其后缀名的,但一般来讲:.o,是目标文件,相当于windows中的.obj文件.so 为共享库,是shared object,用于动态连接的,和dll差不多.a为静态库,是好多个.o合在一起,用于静态连接.la为libtool自动生成的一些共享库,主要记录了转载 2015-05-01 22:35:46 · 670 阅读 · 0 评论 -
linux下编译动态链接库的一个小例子
最近在项目中需要编译一个库,但是对linux下动态链接库的使用还不是很熟悉,所以,在此,写一个小的例子,制作自己的动态链接库,用该demo来熟悉一些linux下动态链接库的使用知识。我们预备的demo的文件组成1.testa.c[cpp] view plaincopy#include void Test_a()转载 2015-05-01 22:24:49 · 689 阅读 · 0 评论 -
在Linux下创建库函数
先转一个创建库函数的资料。感谢原作者,感谢网络,:-)。超经典,ustc人就是牛。Linux下创建库函数 By luster luster@linuxaid.com.cn 2001-8-16 本文档主要参考Program Library HOWTO,作者是luster(hwang@ustc.edu),任何非商业目的的再次发行本文档都是允许的,但是转载 2015-05-01 22:34:55 · 873 阅读 · 0 评论 -
自己在linux上编译、链接、动态库和静态库的学习笔记
在平常的项目中,我们都是使用公司要求的makefile、makedebug一类的文件,因此,在编译、链接、生成和链接动态库与静态库的时候,我们只是简单的使用一些已经设置的变量,只是简单的修改、添加一些文件名,或许这次我们编译通过了,但是,在某一个时候,可能出现了一个问题,无论简单与否,因为平常没有留意,导致的结果可能是花了好长时间才能解决。而如果平常只是简单的留一下心,或许这些问题都是可以避免的。转载 2015-05-01 22:12:35 · 989 阅读 · 0 评论 -
静态库与动态库
这次分享的宗旨是——让大家学会创建与使用静态库、动态库,知道静态库与动态库的区别,知道使用的时候如何选择。这里不深入介绍静态库、动态库的底层格式,内存布局等,有兴趣的同学,推荐一本书《程序员的自我修养——链接、装载与库》。什么是库库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。本质上来说库转载 2015-12-03 15:49:55 · 464 阅读 · 0 评论