2011-12-01 71 views
1

正如你現在可能從我的多個主題知道的,我將Qt 4.7.4嵌入到ARM系統上;我只有最後一個問題。 =/使用Qt的自己的庫:undefined reference

我寫了一個使用Qt的庫,並且我用qmake編譯,以獲得一個.so文件;這樣可行。然後我寫了一個應該使用這個庫的軟件,並且用一個經典的編譯來編譯。問題是,當我嘗試編譯這個軟件時,我從我的庫中得到了很多「未定義的引用」;事實上所有Qt元素都缺失。我看到的Qt庫都沒有發現:

/usr/local/lib/star81xx-lsdk/tools/usr/bin/../lib/gcc/arm-linux-uclibc/4.2.3/../../../../arm-linux-uclibc/bin/ld: warning: libQtGui.so.4, needed by /home/jdl/workspace-install/MY_ARM_SYSTEM/fs/usr/lib/myLib.so, not found (try using -rpath or -rpath-link) 
/usr/local/lib/star81xx-lsdk/tools/usr/bin/../lib/gcc/arm-linux-uclibc/4.2.3/../../../../arm-linux-uclibc/bin/ld: warning: libQtNetwork.so.4, needed by /home/jdl/workspace-install/MY_ARM_SYSTEM/fs/usr/lib/myLib.so, not found (try using -rpath or -rpath-link) 
/usr/local/lib/star81xx-lsdk/tools/usr/bin/../lib/gcc/arm-linux-uclibc/4.2.3/../../../../arm-linux-uclibc/bin/ld: warning: libQtCore.so.4, needed by /home/jdl/workspace-install/MY_ARM_SYSTEM/fs/usr/lib/myLib.so, not found (try using -rpath or -rpath-link) 

爲什麼MYLIB編譯好,如果它不知道在哪裏的Qt庫是誰?我可以手動將它添加到我的軟Makefile嗎?

謝謝!

回答

1

當通過cmd行編譯時,需要添加-L來指定libQtGui.so.4和其他文件的路徑,然後添加-lQtGui -lQtNetwork -lQtCore,以便這些庫鏈接到您的應用程序。

0

有你有沒有添加到您的.pro文件中有很多:

  1. TARGET
  2. CONFIG
  3. QT
  4. LIBS

檢查。

0

其實我只是需要添加到庫的路徑,並用libQtGui.so.4作爲libQtGui的符號鏈接;)