木其网络科技专业程序员代写http://www.xmsydw.com
程序员学历擅长经验网店链接
apenny硕士ASP.NET PHP 电子 通信设计 图像 编程 网络5年进入店铺
zheng_qianqian本科C语言 C++面向对象 Java3年进入店铺
guoguanl本科Java Web项目 JSP Hibernate Struts Mysql4年进入店铺

随笔分类 -  动态库

摘要:问题:开发环境at91sam9260,原先为了赶开发进度,总是使用静态连接来生成可执行程序;现在,要改成使用共享库的方式运行可执行程序;解决办法:1. 编译过程中去掉-static选项;CC = arm-linux-g++ CC-EW = arm-linux-gcc CCFLAGS = -g3 -Wall -o0 -I../../../tools/eldk42/arm/usr/include/ -I../../../tools/eldk42/arm/usr/include/C++/4.2.2/ -I./energywise/include/ CCFLAGS-EW = -g3 -Wall -o. 阅读全文
posted @ 2012-07-23 06:55 C语言程序 阅读(519) 评论(0) 推荐(0) 编辑
摘要:1. 可执行程序在执行的时候如何定位共享库文件?当系统加载可执行代码的时候,能够知道其所依赖的库的名字,但是还需要知道库的绝对路径,此时就需要系统动态载入器(dynamic linker/loader)。对于elf格式的可执行程序,是由ld-linux.so*来完成的,它先后搜索elf文件的DT_RPATH段---环境变量LD_LIBRARY_PATH---/etc/ld.so.cache文件列表---/lib,/usr/lib目录找到库文件后将其载入内存。2. 如何让系统找到用户自定义的库文件如果安装在/lib或/usr/lib下,那么ld默认能够找到,无需其他操作。如果安装在其他目录,需要 阅读全文
posted @ 2012-07-11 15:21 C语言程序 阅读(411) 评论(0) 推荐(0) 编辑
摘要:前提:ubuntu-debug机器上向SVN提交了pdu-IVT,想在别的普通机器上验证直接make能否成功,编译出的用户程序能否运行。工作PC机上装有VMware,里面的ubuntu版本跟ubuntu-debug机器上相同,都是ubuntu 11.10版本。VMware的家目录下有个目录pdu-IVT,是从SVN上更新出来之后,直接拷贝过来的。在将ubuntu-debug机器上,make能成功,并且生成的二进制可执行程序pdu也能运行,并与switch成功建立连接;但在工作PC机的VMware中,运行make时,提示错误:/usr/bin/ld: cannot find -lCiscoEne 阅读全文
posted @ 2012-06-02 12:02 C语言程序 阅读(1396) 评论(0) 推荐(0) 编辑
摘要:(换句话说,soname不是真实存在的文件,只是在此库中和将来调用此库的文件中保存的一个名字,在加载时去找这个名字,使用时创建一个软连接来指向真实文件,这样真实文件的版本号就可以升级了)Linux 系统,也同样面临和Window一样的问题,如何控制动态库的多个版本问题。Window之前没有处理好,为此专门有个名词来形容这个问题 “Dll hell”,其严重影响软件的升级和维护。Dll hell是指windows 上动态库新版本覆盖旧版本,但是却不兼容老版本。常常发生在程序升级之后,动态库更新,原有程序运行不起来;或者装新软件,但是已有的软件运行不起来。 同样Linux操作系统,也有同样的问 阅读全文
posted @ 2011-12-06 14:09 C语言程序 阅读(677) 评论(0) 推荐(0) 编辑

木其网络科技专业程序员代写http://www.xmsydw.com
程序员学历擅长经验网店链接
apenny硕士ASP.NET PHP 电子 通信设计 图像 编程 网络5年进入店铺
zheng_qianqian本科C语言 C++面向对象 Java3年进入店铺
guoguanl本科Java Web项目 JSP Hibernate Struts Mysql4年进入店铺
点击右上角即可分享
微信分享提示