簡體   English   中英

在Qt 4.5.1中使用g ++的鏈接器錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM