linux 中使用动态.so库步骤以及注意

在linux工程中添加libtest.so动态库

1、添加该动态库相应的头文件

2、添加动态链接库的路径(可以将动态库放在/usr/lib/下,也可以使用绝对路径)

3、在makefile中添加动态库的链接(-ltest)

注:

上述步骤添加完成后编译如果还出现找不到函数的情况可能是c文件不能在c++被调用,在库的头文件中添加

#ifdef _cplusplus 
extern "C"{ 
#endif 
n个函数描述 
#ifdef _cplusplus 

#endif

时间: 2024-12-06 05:33:17

linux 中使用动态.so库步骤以及注意的相关文章

Linux中的动态函数库和静态函数库的比较

库函数既提高了代码的利用率,又屏蔽了函数内部实现的细节,给不同开发者提供了统一的接口.从实现来看,库函数可以分为动态函数库和静态函数库.同一组函数,可以根据需要封装成静态库和动态库.那么生成静态库和动态库有什么区别?静态库和动态库对函数的实现上各有些什么要求?两者对内存各有什么影响呢?下面就带着这些问题一起开探讨. 静态库和动态库生成方式的区别为了简化,下面以一个只有一个函数的库的实现来说明.库函数的代码demo.c如下:/************************************

Linux下的动态连接库及其实现机制

Linux与Windows的动态连接库概念相似,但是实现机制不同.它引入了GOT表和PLT表的概念,综合使用了多种重定位项,实现了"浮动代码",达到了更好的共享性能.本文对这些技术逐一进行了详细讨论. 本文着重讨论x86体系结构,这是因为 (1)运行Linux的各种体系结构中,以x86最为普及: (2)该体系结构上的Windows操作系统广为人知,由此可以较容易的理解Linux的类似概念: 下表列出了Windows与Linux的近义词,文中将不加以区分: Windows Linux 动

Linux中使用京东代码库JDCode创建私有Git仓库

国外Git经常被墙,所以目光转向国内.目前,云存储真的是很热,有很多公司在做. 看了一下,CSDN,开源中国,淘宝,京东,Gitcafe都在搞.淘宝只支持SVN. JD号称提供1G免费空间,而且支持私有仓库,所以就去试了试.https://code.jd.com/ 配置起来也比较简单,在网页上新建一个私有项目,之后会提供给你一个项目地址. 不过,私有项目要通过ssh登陆下载. 下面讲讲ssh的配置. 整个配置过程JDCode上面写的比较详细https://code.jd.com/articles

Linux中的动态库(共享库)的制作

一.整体大纲 二.共享库的制作 1. 命名规则: lib + 名字 + .so 2. 制作步骤: 1) 生成与位置无关的代码 (生成与位置无关的.o)    2) 将.o打包成共享库(动态库) 3. 发布和使用共享库: 4. 解决程序执行时动态库无法被加载的问题: 1)放到系统的库目录 中 -- 不允许使用 2)临时测试 环境变量: LD_LIBRARY_PATH=将动态库的路径设置给该变量          将设置的值, 导入到系统环境变量中: export LD_LIBRARY_PATH 

linux中必备常用支持库的安装(CentOS)

在CentOS安装软件的时候,可能缺少一部分支持库,而报错.这里首先安装系统常用的支持库.那么在安装的时候就会减少很多的错误的出现 yum install -y gcc gdb strace gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-dev

linux中LVM动态扩容和管理

相关概念 pv:物理卷 pe:物理拓展卷     lvm的最小存储单元 vg :卷组 lvm :最终使用的可伸缩设备 2.  lvm 建立 1).划分物理分区,修改其标签为lvm 通过L 查出8e编号符合要求 修改成功 (2)pvcreate   /dev/vdb1                                                ---创建物理卷 watch -n 1   'pvs;echo=======;vgs;echo=======;lvs;echo======

在Linux中创建静态库.a和动态库.so

转自:http://www.cnblogs.com/laojie4321/archive/2012/03/28/2421056.html 在Linux中创建静态库.a和动态库.so 我们通常把一些公用函数制作成函数库,供其它程序使用. 函数库分为静态库和动态库两种. 1. 静态函数库 这类库的名字一般是libxxx.a:利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译

Go中使用动态库C/C++库

转自:http://studygolang.com/articles/1441 最近需要做一些在go中使用动态C++库的工作,经常碰到找不到动态库路径这种情况,所以就花点时间,专门做一下实验来了解Go. 一.示例代码目录结构(假设代码根目录为/home/gdc/cgotest): ----|bin:----|pkg----|src--------|main------------|main.go--------|oidb------------|hello----------------|hel

Linux中CPU亲和性(affinity)

0.准备知识 超线程技术(Hyper-Threading):就是利用特殊的硬件指令,把两个逻辑内核(CPU core)模拟成两个物理芯片, 让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和软件,减少了CPU的闲置时间,提高的CPU的运行效率. 我们常听到的双核四线程/四核八线程指的就是支持超线程技术的CPU. 物理CPU:机器上安装的实际CPU, 比如说你的主板上安装了一个8核CPU,那么物理CPU个数就是1个,所以物理CPU个数就是主板上安装的CPU个数. 逻辑CPU:一般情况,我