重新编译Qt时把原来的路径由qt1变成了qt2,然后修改/etc/profile中的QTDIR=/qt2,PATH=$QTDIR/bin: $PATH, LD_LIBRARY_PATH=$QTDIR/lib: $LD_LIBRARY_PATH,
修改/etc/ld.so.conf,只包括路径/qt2,然后ldconfig -v,可以看到输出结果中包含了/qt2/lib下的各个库文件,再用ldconfig -p来看下/etc/ld.so.cache内容也确实包括的是/qt2/lib的库文件
重启后查看env,所有变量都只有/qt2而没有qt1,这时重新编译程序后得到的可执行文件app
而使用ldd -r app却发现其链接库仍然是qt1/lib,请问问题到底出现在哪里?为什么无法更改到新的qt2库目录,qt1目录早已经删除,查找了所有的文件也看不到包含qt1,到底ldconfig对ldd没有任何影响吗?那应该如何更新库文件路径呢?
谢谢各位热心帮助!作者: goubao198562 时间: 2010-07-07 18:07
路径是在/etc/ld.so.conf中修改的, man ldconfig
ldconfig creates the necessary links and cache to the most recent shared libraries found in the directo-
ries specified on the command line, in the file /etc/ld.so.conf, and in the trusted directories (/lib and
/usr/lib). The cache is used by the run-time linker, ld.so or ld-linux.so. ldconfig checks the header
and filenames of the libraries it encounters when determining which versions should have their links
updated.