运行TLD 算法时,碰到这个问题。
明明动态链接库的路径已经加好了,而且在运行算法中的compile文件时,也改了路径,但是算法依然报错。
百思不得其解,google之,请看专家解答:
对动态链接库的使用可不是像一般文件那样搁个路径在PATH中就可以了,
需要在/etc/ld.so.conf里定义该路径.
如果改动后要使之立刻生效,
再执行一下/sbin/ldconfig就好了.
在补一下课:
运行时使用非标准位置/usr/lib和/lib下的库的方式有三种:
(1) 设置$LD_LIBRARY_PATH=库所在目录(多个目录用:分隔),系统加载工具ld.so/ld-linux.so将顺序搜索变量指定的目录。例如#$LD_LIBRARY_PATH=/usr/local/mysql/lib ./test_mysql
(2) 以root身份把库路径加入/etc/ld.so.conf或在/etc/ld.so.conf.d中创建特定的.conf文件,然后运行ldconfig更新/etc/ld.so.cache。例如:在/etc/ld.so.conf.d下创建文件mysql.conf写入/usr/local/mysql/lib
(3) 另一种办法就是把需要的库copy到/usr/lib或/lib,但这不是建议的方法,特别是尽量避免copy发到/lib。但这种方法可以在编译时免去用-L选项。
共享库搜索顺序一般是$LDLIBRARY_PATH,/etc/ld.so.cache, /usr/lib, /lib