linux 下c 链接so 库

gcc -shared -fPIC -o libname.so  *.c  //生成so库

gcc main.c -om  -Lpath -lname //链接测试so 库

但是生成可执行程序执行时报,error while load....... 表示编译链接库的时后没有找到so库,可以 ldd 程序名 查看链接情况   no found

解决办法 永久生效

1. 可以把 生成的 so库 放到 /usr/lib 下

2. 可以添加 so 库路径到 /etc/ld.so.conf  文件中 ,并执行 /sbin/ldconfig 使生效。

临时生效 可 export LD_LIBRARY_PATH.

原文地址:https://www.cnblogs.com/libing029/p/10463888.html

时间: 2024-08-30 14:08:20

linux 下c 链接so 库的相关文章

Linux下 静态链接库 和 动态链接库

先来说说C/C++编译过程 编译: 检查语句符号定义,将C/C++代码翻译生成中间语言. 链接: 将中间代码整合,生成可执行的二进制代码. 简单的说,库文件都是一种特殊的中间语言文件,静态库还是一种特殊格式的归档文件(打包的文件). 使用静态库: 1. 先编写库函数 1 #ifndef _PRINT_TEST_H_ 2 3 #define _PRINT_TEST_H_ 4 #ifdef __cplusplus 5 extern "C" 6 { 7 #endif 8 9 extern i

程序的链接和装入及Linux下动态链接的实现

http://www.ibm.com/developerworks/cn/linux/l-dynlink/ 程序的链接和装入及Linux下动态链接的实现 程序的链接和装入存在着多种方法,而如今最为流行的当属动态链接.动态装入方法.本文首先回顾了链接器和装入器的基本工作原理及这一技术的发展历史,然后通过实际的例子剖析了Linux系统下动态链接的实现.了解底层关键技术的实现细节对系统分析和设计人员无疑是必须的,尤其当我们在面对实时系统,需要对程序执行时的时空效率有着精确的度量和把握时,这种知识更显重

linux下的静态连接库和动态链接库

对linux的静态连接库和动态链接库分不清楚,在看了一篇博文后,现在想做个自己的总结,以加深印象: 1.库的基本概念: 库是可执行代码的二进制形式,其可以被调入操作系统调入内存进行执行. 在window和linux系统,都存在各自的库,但是两种系统的库并不能兼容,因为它们的编译器,连接器,汇编器都是不相同的. 在windows下,静态连接库的后缀是.lib;动态链接库的后缀是.dll 在linux系统下,静态链接库的后缀是.a;动态链接库的后缀是.so 2.静态连接库和动态链接库的命名: 静态连

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

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

linux下编译安装boost库

转载:http://www.cnblogs.com/oloroso/p/4632848.html linux下编译安装boost库 linux下编译安装boost库 1.下载并解压boost 1.58 源代码 下载 解压 2.运行bootstrap.sh 3.使用b2进行构建 构建成功的提示 4.安装boost库到指定目录 5.测试一下 代码 编译运行 先看一下系统环境 Linux o-pc 3.19.0-22-generic #22-Ubuntu SMP Tue Jun 16 17:15:15

linux下创建链接文件

在linux下创建链接文件 ln -s /home/{user}/Document/notepad.txt /home/{user}/Desktop/myNotepad 这样将在用户桌面创建一个myNotepad的链接文件(熟称快捷方式)用于指向用户的Document文件夹下的notepad.txt文件.

转载: linux下创建svn代码库

linux下创建svn代码库 1.安装svn客户端 2.创建svn代码库 1.安装svn客户端 1.1.使用命令安装 1)CentOS $ yum install subversion 2)ubuntu sudo apt-get install subversion 1.2.源码安装 http://www.cnblogs.com/fengbohello/p/4142810.html 2.开启svn服务进程 2.1.我的习惯是把代码仓库放在/opt/svn目录下,所以先创建目录/opt/svn $

VS2010下静态链接OpenCV库的设置

一.Debug模式下的设置: 设置Include Directories和Library Directories: 设置Runtime library,Debug模式下用MTd 设置Additional Dependencies Debug模式下加入的lib 二.Release模式下的设置 设置Include Directories和Library Directories: 设置Runtime library,Release模式下用MT 设置Additional Dependencies Rel

linux下静态链接库的用法

最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误: (.text+0x13): undefined reference to `func' 关于undefined reference这样的问题,大家其实经常会遇到.在此,我以详细示例给出常见错误的各种原因以及解决办法,希望对初学者有所帮助. 1.  链接时缺失了相关目标文件(.o) 编译命令: gcc -c test.c gcc -c main.c 得到两个.o文件,一个是main.o,一个是tes