一千萬個為什麽

搜索

QT4的基本編譯問題


我一直試圖從大學教科書中獲取一個簡單的清單,以便使用我昨晚下載的最新QT SDK for Windows進行編譯。在經歷了常規的廢話(沒有make.bat,需要手動添加環境變量等)後,我終於可以構建了。但是這兩個庫中只有一個似乎有效。

我使用的.pro文件很簡單:

SUBDIRS += utils \
           dataobjects

TEMPLATE = subdirs

在這兩個子文件夾的每一個中,我都有一個庫的源代碼。運行QMAKE會生成一個makefile並運行Make運行所有的預備,然後在g ++調用上失敗:

g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc --out-implib,libdataobjects.a -shared -mthreads -Wl -Wl,--out-implib,c:\Users\Cobus\workspace\lib\libdataobjects.a -o ..\..\lib\dataobjects.dll object_script.dataobjects.Debug  -L"c:\Users\Cobus\Portab~1\Qt\2010.02.1\qt\lib" -LC:\Users\Cobus\workspace\lib -lutils -lQtXmld4 -lQtGuid4 -lQtCored4
c:/users/cobus/portab~1/qt/2010.02.1/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe: cannot find -lutils

問題似乎在命令行的末尾附近,其中添加了-lutils,表明有一個名為utils的庫。雖然我本來希望看到這一點,但你會註意到--out中的庫名稱在名稱中包含lib之後,因此它們變成了libutils和libdataobjects。我試圖弄清楚為什麽會這樣,但無濟於事。

任何人都知道發生了什麽事?

最佳答案

.pro 文件使用 SUBDIRS 模板,該模板需要與每個子目錄的目錄名匹配的.pro文件。您還應該有 utils \ utils.prodataobjects \ dataobject.pro 文件。

c:\ Users \ Cobus \ workspace \ lib \ libdataobjects.a 是否正確構建?如果沒有,請檢查子目錄 .pro 文件。

根據您發布的內容,我不希望編譯任何內容。您需要子目錄 .pro 文件中的目標來構建任何內容。

轉載註明原文: QT4的基本編譯問題

猜你喜歡