Основная проблема компиляции с QT4 - PullRequest
0 голосов
/ 07 мая 2010

Я пытался получить простой список из университетского учебника, чтобы собрать новейший QT SDK для Windows, который я скачал вчера вечером. Пройдя сквозь обычную ерунду (нет make.bat, нужно вручную добавлять переменные окружения и т. Д.), Я, наконец, нахожусь в точке, где я могу построить Но, похоже, работает только одна из двух библиотек.

.pro-файл, который я использую, очень прост:

SUBDIRS += utils \
           dataobjects

TEMPLATE = subdirs

В каждой из этих двух подпапок у меня есть источник для библиотеки. При запуске QMAKE создается make-файл, а при запуске 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. Я пытался выяснить, почему это происходит, но безрезультатно.

Кто-нибудь знает, что происходит?

Ответы [ 2 ]

0 голосов
/ 07 мая 2010

В файле .pro используется шаблон SUBDIRS, для которого требуется файл .pro, соответствующий имени каталога для каждого вложенного каталога. Вы также должны иметь файлы utils\utils.pro и dataobjects\dataobject.pro.

Правильно ли построен c:\Users\Cobus\workspace\lib\libdataobjects.a? Если нет, проверьте подкаталог .pro files.

С тем, что вы опубликовали, я не ожидал, что что-нибудь скомпилируется. Вам нужны цели в файлах подкаталога .pro для создания чего-либо.

0 голосов
/ 07 мая 2010

Похоже, это еще один pro-файл, так как сгенерированный Makefile извлекает QtXml, который он не будет делать по умолчанию.

Пожалуйста, проверьте подкаталоги для любых файлов .pro или .pri. У одного из них будет ответк вашей растерянности

...