嵌入式Linux如何设置动态连接库的搜索路径?

时间:2021-08-22 22:44:51
  交叉编译环境下,用主机编译完成带动态链接库的程序,当移植到开发板(arm 9260,内核2.6.30)时,如何设置开发板的搜索路径(如:/app/lib)。我试了一下两种方法:
1.export $LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/app/lib,提示找不到所需的动态库
2.在/etc/ld.so.conf里添加/app/lib,然后执行:ldconfig命令,还是提示找不到所需的动态库。
  请问还有其他的办法可以设置么?
补充:我把动态库放到/lib下就可以正常运行。

6 个解决方案

#1


试试把/app/lib放在前面,export $LD_LIBRARY_PATH=/app/lib:$LD_LIBRARY_PATH

#2


export $LD_LIBRARY_PATH=/app/lib:$LD_LIBRARY_PATH
提示:/bin/sh: export: : bad variable name
我直接试过:export $LD_LIBRARY_PATH=/app/lib都不行

#3


ldd命令看一下

#4


引用 2 楼 yshiliu 的回复:
export $LD_LIBRARY_PATH=/app/lib:$LD_LIBRARY_PATH
提示:/bin/sh: export: : bad variable name
我直接试过:export $LD_LIBRARY_PATH=/app/lib都不行


export LD_LIBRARY_PATH=/app/lib:$LD_LIBRARY_PATH

#5


没有做过嵌入式开发,不过用gcc编译的时候加参数
-rpath

就可以设置路径(一般这样用都是设置相对路径)
编译出来的程序,用ldd命令你就可以看到它自动连接到你设置的相对路径的动态库了

这样就不用设置LD_LIBRARY_PATH了

自己搜索一下 -rpath怎么用吧

#6


直接LD_LIBRARY_PATH=/app/lib:$LD_LIBRARY_PATH

#1


试试把/app/lib放在前面,export $LD_LIBRARY_PATH=/app/lib:$LD_LIBRARY_PATH

#2


export $LD_LIBRARY_PATH=/app/lib:$LD_LIBRARY_PATH
提示:/bin/sh: export: : bad variable name
我直接试过:export $LD_LIBRARY_PATH=/app/lib都不行

#3


ldd命令看一下

#4


引用 2 楼 yshiliu 的回复:
export $LD_LIBRARY_PATH=/app/lib:$LD_LIBRARY_PATH
提示:/bin/sh: export: : bad variable name
我直接试过:export $LD_LIBRARY_PATH=/app/lib都不行


export LD_LIBRARY_PATH=/app/lib:$LD_LIBRARY_PATH

#5


没有做过嵌入式开发,不过用gcc编译的时候加参数
-rpath

就可以设置路径(一般这样用都是设置相对路径)
编译出来的程序,用ldd命令你就可以看到它自动连接到你设置的相对路径的动态库了

这样就不用设置LD_LIBRARY_PATH了

自己搜索一下 -rpath怎么用吧

#6


直接LD_LIBRARY_PATH=/app/lib:$LD_LIBRARY_PATH