静态库和共享库 库的定位搜索路径
接使用-L和-I参数指定搜索非标准的库文档和头文档的路径.例如:
arm-linux-gcc test.c -L/usr/local/arm/2.95.3/arm-linux/lib -I/usr/local/arm/2.95.3/arm-linux/include (2)、使用ld.so.conf文档,将用到的库所在文档目录添加到此文档中,然后使用ldconfig命令刷新缓存. (3)、使用如下命令: $ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/arm/2.95.3/arm-linux-lib 参见《ld.so.conf 文档和PKG_CONFIG_PATH变量》这篇文章. 通过环境变量LD_LIBRARY_PATH指定动态库搜索路径(!). 通过设定环境变量LD_LIBRARY_PATH也可以指定动态库搜索路径.当通过该环境变量指定多个动态库搜索路径时,路径之间用冒号":"分隔.
不过LD_LIBRARY_PATH的设定作用是全局的,过多的使用可能会影响到其他应用程序的运行,
(4)、交叉编译时使用软件的configure参数.例如我编译minigui-1.3.3,使用如下配置: #!/bin/bash rm -f config.cache config.status ./configure --build=i686-linux --host=arm-linux --target=arm-linux CFLAGS=-I/usr/local/arm/2.95.3/arm-linux/include LDFLAGS=-L/usr/local/arm/2.95.3/arm-linux/lib --prefix=/usr/local/arm/2.95.3/arm-linux --enable-lite --disable-galqvfb --disable-qvfbial --disable-vbfsupport --disable-ttfsupport --disable-type1support --disable-imegb2312py --enable-extfullgif --enable-extskin --disable-videoqvfb --disable-videoecoslcd 这里我配置了CFLAGS和LDFLAGS参数,这样一来,我就不用去修改每个Makefile里-L和-I参数了,也不用再去配置LD_LIBRARY_PATH或改写ld.so.conf文档了. Linux下动态库使用小结 1. 静态库和动态库的基本概念 静态库,是在可执行程序连接时就已经加入到执行码中,在物理上成为执行程序的一部分;使用静态库编译的程序运行时无需该库文件支持,哪里都可以用,但是生成的可执行文件较大.动态库,是在可执行程序启动时加载到执行程序中,可以被多个可执行程序共享使用.使用动态库编译生成的程序相对较小,但运行时需要库文件支持,如果机器里没有这些库文件就不能运行. 2. 如何使用动态库 如何程序在连接时使用了共享库,就
不过LD_LIBRARY_PATH的设定作用是全局的,过多的使用可能会影响到其他应用程序的运行, |
||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |