动态库
David_xtd
这个作者很懒,什么都没留下…
展开
-
Linux如何解决动态库的版本控制
(换句话说,soname不是真实存在的文件,只是在此库中和将来调用此库的文件中保存的一个名字,在加载时去找这个名字,使用时创建一个软连接来指向真实文件,这样真实文件的版本号就可以升级了) Linux 系统,也同样面临和Window一样的问题,如何控制动态库的多个版本问题。Window之前没有处理好,为此专门有个名词来形容这个问题 “Dll hell”,其严重影响软件的升级和维护。 Dll转载 2011-12-06 14:09:14 · 9388 阅读 · 2 评论 -
linux下可执行程序如何定位共享库文件以及如何让系统找到用户指定的库
1. 可执行程序在执行的时候如何定位共享库文件?当系统加载可执行代码的时候,能够知道其所依赖的库的名字,但是还需要知道库的绝对路径,此时就需要系统动态载入器(dynamic linker/loader)。对于elf格式的可执行程序,是由ld-linux.so*来完成的,它先后搜索elf文件的DT_RPATH段---环境变量LD_LIBRARY_PATH---/etc/ld.so.cac原创 2012-07-11 15:21:16 · 5203 阅读 · 0 评论 -
如何将openssl、uuid和crypto的库文件放到本地指定库目录
问题:开发环境at91sam9260,原先为了赶开发进度,总是使用静态连接来生成可执行程序;现在,要改成使用共享库的方式运行可执行程序;解决办法:1. 编译过程中去掉-static选项;CC = arm-linux-g++CC-EW = arm-linux-gccCCFLAGS = -g3 -Wall -o0 -I../../../tools/eldk42/arm原创 2012-07-23 14:55:21 · 5123 阅读 · 0 评论 -
错误解决error while loading shared libraries: libXXX.so.X: cannot open shared object file: No such file
前提:ubuntu-debug机器上向SVN提交了pdu-IVT,想在别的普通机器上验证直接make能否成功,编译出的用户程序能否运行。工作PC机上装有VMware,里面的ubuntu版本跟ubuntu-debug机器上相同,都是ubuntu 11.10版本。VMware的家目录下有个目录pdu-IVT,是从SVN上更新出来之后,直接拷贝过来的。在将ubuntu-deb原创 2012-06-02 12:02:00 · 129038 阅读 · 1 评论