• 6023阅读
  • 3回复

ldconfig为什么不能改变QT库文件路径? [复制链接]

上一主题 下一主题
离线babyfacewa
 

只看楼主 倒序阅读 楼主  发表于: 2010-05-19
重新编译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没有任何影响吗?那应该如何更新库文件路径呢?
谢谢各位热心帮助!
离线paranoid
只看该作者 1楼 发表于: 2010-05-20
这些信息是configure的时候写死的,比如写进qmake里。要想改变只能通过qt creator提供的一个叫做qpatch的工具。
在windows上的用法是:qpatch files-to-patch-windows oldQtDir newQtDir
离线babyfacewa

只看该作者 2楼 发表于: 2010-05-20
谢谢paranoid的回复,还是头次知道这个工具,我先试试看。不过在重新编译时已经通过configure指定--prefix=/qt2了,所以应该不是这个问题,使用which qmake,时也是指向/qt2/bin/qmake的,编译时也完全没有问题,就是不明白为什么ld会使用原来的路径。
离线paranoid
只看该作者 3楼 发表于: 2010-05-20
你试试二进制打开qmake看看它的内容是不是只包含/qt1而没有/qt2?
快速回复
限100 字节
 
上一个 下一个