如何让自己的动态链接库文件能够在linux下被调用
2013-05-31 18:16
295 查看
VxWorks 安装的DVD有很多自己的动态链接库文件,在启动一些服务的时候需要调用这些动态链接库文件,否则不能启动一些功能,report:找不到相关的库文件。
解决的方法可以有多种:
1. 直接创建软连接的方式,将某动态链接库文件链接到 /lib 或者/usr/lib 下。
ln -s `pwd`/xxx.so /lib/xxx.so
这种方式适合少数固定不变动态链接库文件的调用,但如果文件很多,或者这些文件也是经常存在更新的,这么多比较繁琐。
2. 如果直接把动态链接库文件所在的路径直接加到系统查找库的路径下,这里有两种方式:
1) 更改/etc/ld.so.conf, 加入自己的动态链接库路径,好像需要更新/etc/ld.so.cache; 该方法应该可用,没有尝试过。
2) 更改环境变量LD_LIBRARY_PATH,把自己的动态链接库路径,加入到该环境变量中。
export LD_LIBRARY_PATH=/Jenkins/workspace/Mefa_Nightly_regression_Job02/MAIN/mefa_platform/logs_1st_round/mefaImage/simulatorTools:$LD_LIBRARY_PATH
在该环境变量中的动态链接库文件会比系统中/lib 或者 /usr/lib 更早调用。
linux重启之后,该环境变量会失效;
这种方式更适合自动化的测试的需要。
解决的方法可以有多种:
1. 直接创建软连接的方式,将某动态链接库文件链接到 /lib 或者/usr/lib 下。
ln -s `pwd`/xxx.so /lib/xxx.so
这种方式适合少数固定不变动态链接库文件的调用,但如果文件很多,或者这些文件也是经常存在更新的,这么多比较繁琐。
2. 如果直接把动态链接库文件所在的路径直接加到系统查找库的路径下,这里有两种方式:
1) 更改/etc/ld.so.conf, 加入自己的动态链接库路径,好像需要更新/etc/ld.so.cache; 该方法应该可用,没有尝试过。
2) 更改环境变量LD_LIBRARY_PATH,把自己的动态链接库路径,加入到该环境变量中。
export LD_LIBRARY_PATH=/Jenkins/workspace/Mefa_Nightly_regression_Job02/MAIN/mefa_platform/logs_1st_round/mefaImage/simulatorTools:$LD_LIBRARY_PATH
在该环境变量中的动态链接库文件会比系统中/lib 或者 /usr/lib 更早调用。
linux重启之后,该环境变量会失效;
这种方式更适合自动化的测试的需要。
相关文章推荐
- 【转】C#生成dll文件:如何用C#编译生成dll文件即动态链接库文件供其它程序调用
- linux下如何编译自己的动态链接库
- 如何查看linux动态链接库文件的版本等其他信息
- linux下动态链接问题(.so文件的编写与调用)
- linux下动态链接问题(so文件的编写与调用)
- Linux动态链接库so文件搜索目录更新
- 简单Demo:动态调用自己编写的动态链接库
- linux 复制目录中含有隐藏文件和链接如何处理
- 如何让一个动态链接库文件debug和release编译的时候生成不同的文件名
- VC++ 6.0如何创建与调用动态链接库
- linux动态链接共享库(如何解决应用程序跑不起来not found等问题)
- 如何用VB编写自己的DLL文件,并调用其中的函数
- Intel平台下linux中 ELF文件动态链接的加载、解析及实例分析(二): 函数解析与卸载
- linux 查看可执行文件动态链接库相关信息(转)
- c#中如何调用vc++写的动态链接库
- 关于linux动态链接共享库(如何解决应用程序跑不起来not found等问题)
- Linux系统中如何添加自己的库文件路径
- jnative在linux下对c程序的动态链接库的调用问题及解决方案
- linux下查看动态链接库so文件的依赖的相关组建
- linux下如何将c++程序编译成so,如何调用该so文件