当前位置: 技术问答>linux和unix
一个项目有多个so,某个so会加载同目录的另一个,如何在程序中设置路径?
来源: 互联网 发布时间:2017-03-05
本文导语: 大家好! 小弟我最近把一个windows项目移植到linux,在linux下该软件的目录有 bin、data、config,这三个目录在同一级 bin目录下有多个so,假设有 interface.so(接口) ,module1.so(模块1) module2.so(模块2) ,接口的so里会...
大家好!
小弟我最近把一个windows项目移植到linux,在linux下该软件的目录有 bin、data、config,这三个目录在同一级
bin目录下有多个so,假设有 interface.so(接口) ,module1.so(模块1) module2.so(模块2) ,接口的so里会加载模块1和模块2
现在如果一个调用接口的程序在bin目录下,程序是没有问题的,但是如果调用程序不在bin目录下
接口程序中就加载不了 模块1和模块2了,我用的是当前目录.dlopen(./module1.so)方式加载的,在interface.so里我也用chdir把目录设置到bin目录下了,但是还是不行
各位大侠可有什么办法能处理这个问题?感激不尽
小弟我最近把一个windows项目移植到linux,在linux下该软件的目录有 bin、data、config,这三个目录在同一级
bin目录下有多个so,假设有 interface.so(接口) ,module1.so(模块1) module2.so(模块2) ,接口的so里会加载模块1和模块2
现在如果一个调用接口的程序在bin目录下,程序是没有问题的,但是如果调用程序不在bin目录下
接口程序中就加载不了 模块1和模块2了,我用的是当前目录.dlopen(./module1.so)方式加载的,在interface.so里我也用chdir把目录设置到bin目录下了,但是还是不行
各位大侠可有什么办法能处理这个问题?感激不尽
|
export LD_LIBRARY_PATH=your_path_name
|
相对路径是相对进程的当前执行目录,你让程序启动后先chdir切到bin目录即可。