- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
设置库文件路径
众所周知,Linux动态库的默认有哪些信誉好的足球投注网站路径是/lib和/usr/lib。动态库被创建后,一般都复制到这两个目录中。当程序执行时需要某动态库,并且该动 态库还未加载到内存中,则系统会自动到这两个默认有哪些信誉好的足球投注网站路径中去查找相应的动态库文件,然后加载该文件到内存中,这样程序就可以使用该动态库中的函数,以及 该动态库的其它资源了。在Linux 中,动态库的有哪些信誉好的足球投注网站路径除了默认的有哪些信誉好的足球投注网站路径外,还可以通过以下三种方法来指定。 方法一:在配置文件/etc/ld.so.conf中指定动态库有哪些信誉好的足球投注网站路径。 可以通过编辑配置文件/etc/ld.so.conf来指定动态库的有哪些信誉好的足球投注网站路径,该文件中每行为一个动态库有哪些信誉好的足球投注网站路径。每次编辑完该文件后,都必须运行命令ldconfig使修改后的配置生效。我们通过例1来说明该方法。 例1: 我们通过以下命令用源程序pos_conf.c(见程序1)来创建动态库 libpos.so,详细创建过程请参考文[1]。# gcc -c pos_conf.c
# gcc -shared -fPCI -o libpos.so pos_conf.o
#
#include ? ?? ?? ? void pos()? ?? ?? ? {? ?? ?? ?? ?? ???printf(/root/test/conf/lib\n);? ?? ?? ? }? ?? ?? ???程序1: pos_conf.c接着通过以下命令编译main.c(见程序2)生成目标程序pos。 # gcc -o pos main.c -L. -lpos? ?? ?? ? #void pos();? ?? ?? ?int main()? ?? ?? ?{? ?? ?? ?? ???pos();? ?? ?? ?? ???return 0;? ?? ?? ?}? ?? ?? ?程序2: main.c然后把库文件移动到目录/root/test/conf/lib中。 # mkdir -p /root/test/conf/lib? ?? ?? ? # mv libpos.so /root/test/conf/lib? ?? ?? ? #最后编辑配置文件/etc/ld.so.conf,在该文件中追加一行/root/test/conf/lib。 运行程序pos试试。 # ./pos? ?? ?? ? ./pos: error while loading shared libraries: libpos.so: cannot open shared object file: No such file or directory? ?? ?? ? #出错了,系统未找到动态库libpos.so。找找原因,原来在编辑完配置文件/etc/ld.so.conf后,没有运行命令ldconfig,所以刚才的修改还未生效。我们运行ldconfig后再试试。# ldconfig? ?? ?? ? # ./pos? ?? ?? ???/root/test/conf/lib ? ?? ?? ? #程序pos运行成功,并且打印出正确结果。 方法二:通过环境变量LD_LIBRARY_PATH指定动态库有哪些信誉好的足球投注网站路径。 通过设定环境变量LD_LIBRARY_PATH也可以指定动态库有哪些信誉好的足球投注网站路径。当通过该环境变量指定多个动态库有哪些信誉好的足球投注网站路径时,路径之间用冒号:分隔。下面通过例2来说明本方法。 例2: 我们通过以下命令用源程序pos_env.c(见程序3)来创建动态库libpos.so。 # gcc -c pos_env.c? ?? ?? ? # gcc -shared -fPCI -o libpos.so pos_env.o? ?? ?? ? ##include ? ?? ?? ?void pos()? ?? ?? ?{? ?? ?? ?? ?? ?printf(/root/test/env/lib\n);? ?? ?? ?}? ?? ?? ?程序3: pos_env.c测试用的可执行文件pos可以使用例1中的得到的目标程序pos,不需要再次编译。因为pos_conf.c中的函数pos和pos_env.c中的函数pos 函数原型一致,且动态库名相同,这就好比修改动态库pos后重新创建该库一样。这也是使用动态库的优点之一。 然后把动态库libpos.so移动到目录/root/test/conf/lib中。 # mkdir -p /root/test/env/lib? ?? ?? ? # mv libpos.so /root/test/env/lib? ?? ?? ? #我们可以使用export来设置该环境变量,在设置该环境变量后所有的命令中,该环境变量都有
您可能关注的文档
- 警示教育季活动总结.doc
- 警示标牌物管标牌设备间标牌中英文对照.doc
- 计划成本会议纪要20140805.doc
- 警翼移动执法电子证据管理软件对外接口说明书V10.docx
- 警示教育二.doc
- 计划部主管职权及岗位说明书.doc
- 计合部岗位说明书.doc
- 计科大学生活实用说明书.doc
- 计算器说明.doc
- 计划生育手术保险推荐.doc
- 2024年证券分析与咨询服务项目投资申请报告代可行性研究报告.docx
- 2024年铬酸酐项目资金申请报告代可行性研究报告.docx
- 2024年清洁胶项目资金申请报告代可行性研究报告.docx
- 2024年肉松饼项目投资申请报告代可行性研究报告.docx
- 2024年陆上泵项目资金需求报告代可行性研究报告.docx
- 2024年未硫化复合橡胶及其制品项目资金需求报告代可行性研究报告.docx
- 2024年精密温控节能设备项目资金筹措计划书代可行性研究报告.docx
- 2024年汽车覆盖件模具项目资金筹措计划书代可行性研究报告.docx
- 宋词行书钢笔字帖.pdf
- 我的暑假生活作文三年级300字10篇.pdf
文档评论(0)