[英]Linker Error using g++ with Qt 4.5.1
我正在嘗試測試新的開發環境,但在引用某些必需的Qt庫時遇到了一些問題。
首先我運行這個:
$ g++ HelloWorld.C -o HelloWorld -I /usr/local/Trolltech/Qt-4.5.1/include/QtCore/ -I /usr/local/Trolltech/Qt-4.5.1/include/
並得到此錯誤:
/tmp/ccmsm4kZ.o: In function `QString::QString(char const*)':
HelloWorld.C:(.text._ZN7QStringC2EPKc[_ZN7QStringC5EPKc]+0x1d): undefined reference to `QString::fromAscii_helper(char const*, int)'
/tmp/ccmsm4kZ.o: In function `QString::~QString()':
HelloWorld.C:(.text._ZN7QStringD2Ev[_ZN7QStringD5Ev]+0x2d): undefined reference to `QString::free(QString::Data*)'
collect2: ld returned 1 exit status
因此,我通過以下方式添加了對QtCore庫的引用:
$ g++ HelloWorld.C -o HelloWorld -I /usr/local/Trolltech/Qt-4.5.1/include/QtCore/ -I /usr/local/Trolltech/Qt-4.5.1/include/ -L /usr/local/Trolltech/Qt-4.5.1/lib -lQtCore
刪除了編譯錯誤,但是當我嘗試運行程序時,出現此錯誤:
./HelloWorld: error while loading shared libraries: libQtCore.so.4: cannot open shared object file: No such file or directory
我無法通過Google找到針對此問題的解決方案。 有人有建議嗎?
該錯誤表明,盡管鏈接器可以在編譯時找到該庫,但在運行時找不到該庫。
您應該更新您的LD_LIBRARY_PATH
以包括該位置,如下所示:
在~.bashrc
可能在底部附近:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/Trolltech/Qt-4.5.1/lib
另外,如果您想使它在整個系統中持久存在(並具有root訪問權限),則可以在/etc/ld.so.conf.d
創建一個條目(在RedHat上,我不確定其他發行版)
touch /etc/ld.so.conf.d/qt.conf
將路徑添加到此文件,然后通過/sbin/ldconfig
更新運行時
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.