linux下找不到动态链接库
原帖地址:http://hi.baidu.com/tingyu521/blog/item/81a8b75180e4e21f377abedc.html
在编译一些开源软件的时候常常会遇到类似于error while loading shared libraries: libmysqlclient.so 等链接接库找不到。那怎么办呢?
总的来说是由于开源软件的动态链接库没有放在程序寻找的地方,尤其是连个开源软件相互协作运行的时候,例如mysql+php,mysql+sphinx。
那这样怎么办呢?
先来看看linux寻找动态链接库的顺序吧!
1.编译目标代码时指定的动态库搜索路径;
2.环境变量LD_LIBRARY_PATH指定的动态库搜索路径;
3.配置文件/etc/ld.so.conf中指定的动态库搜索路径;
4.默认的动态库搜索路径/lib;
5.默认的动态库搜索路径/usr/lib。
如果出现没有寻找到动态链接库的是时候,我们可以根据以上五个步骤去尝试解决。
1.在编译原代码的时候
./configure --help 查看一下是不是可以在编辑的时候指定lib目录和include目录
2.可以通过export将LD_LIBRARY_PATH指定为你需要搜索的路径。
3.如果要通过第三种方式去修改那么
vi /etc/ld.so.conf
在此文件中写入你需要用的动态链接库的位置
例如mysql就是/usr/local/mysql/lib/mysql
然后
ldconfig
4.在您所需要装的软件中寻找到那个动态链接库,放入到目录/lib和/usr/lib
相关文档:
买来的开发板一启动就进入Qtopia的界面,很像个手机,但我想让它开机就执行我的程序,怎么办呢?
在网上查找关于Linux启动的文章,发现这个文件配置了启动所做的操作:/etc/inittab.
# This is run first except when booting
::sysinit:/etc/init.d/rcS
# Start an "askfirst" shell on the console
# shell routin ......
1 前言
许多人在分析linux代码时对网络部分(主要是src/linux/net,src/linux/include/net及src/linux/include/linux目录下的文件)比较感兴趣,确实,尽管已经从书本上学到了大量的TCP/IP原理,不读源码的话,头脑中还是建立不起具体的印象。而分析这部分代码的一个问题便是代码众多而资料很少。这篇文章的目的就是勾勒出 ......
本来我电脑装的是windows和redflag linux,后来感觉没有虚拟机下用着舒服,就准备卸载linux。
1、在windows下的我的电脑——管理——磁盘管理,会看到没有名字的linux分区,在上面点右键,删除逻辑分区
2、重新启动,改动bios启动顺序,把从磁盘启动给禁用,一定要禁用。
3、保存bios设 ......
5. 引号
在向程序传递任何参数之前,程序会扩展通配符和变量。这里所谓扩展的意思是程序会把通配符(比如*)替换成合适的文件名,它变量替换成变量值。为了防止程序作这种替换,您可以使用引号:让我们来看一个例子,假设在当前目录下有一些文件,两个jpg文件, mail.jpg 和tux.jpg。
1.2 编译SHELL脚本
#ch ......
每个程序实质上都会链接到一个或者多个的库。比如使用C函数的程序会链接到C运行时库,GUI程序会链接到窗口库等等。无论哪种情况,你都会要决定是链接到静态库(static libary)还是动态库(dynamic libary)。
链接到静态库会使你的程序臃肿,并且难以升级,但是可能会比较容易部署。
而链接到动态库会使你的程序轻便,并且易 ......