Неопределенные ссылки при компиляции статической сборки Qt в Windows - PullRequest
1 голос
/ 24 июня 2010

Я бы хотел скомпилировать статическую версию инструментария Qt на платформе Windows (Windows XP SP3).Я скачал последний выпуск для Windows и успешно установил его.Затем я открыл командную строку Qt 4.6.3 из меню Пуск и вызвал:

configure -static -release -nomake examples -nomake demos -fast

Конфигурация выполняется нормально, а также первая часть mingw32-make.В какой-то момент я получаю множество неопределенных ссылок:

mingw32-make [4]: ​​вход в каталог `C: /Qt-static/4.6.3/src/tools/moc'
г ++ -c -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_MOC -DQT_BOOTSTRAPPED -DQT_LITE_UNICODE -DQT_TEXTCODEC -DQT_NO_CAST_FROM_AS CII -DQT_NO_CAST_TO_ASCII -DQT_NO_CODECS -DQT_NO_DATASTREAM -DQT_NO_GEOM_VARIANT -DQT_NO_LIBRARY -DQT_NO_QOBJECT -DQT_NO_STL -DQT_NO_SYSTEMLOCALE -DQT_NO_TEXTST REAM -DQT_NO_THREAD -DQT_NO_UNICODETABLES -DQT_NO_USING_NAMESPACE -DQT_NODLL -I "."-Я"."-I "...... \ include" -I "...... \ include \ QtCore" -I "...... \ include \ Qt Xml" -I ".... \ xml"-I" c: \ Program Files \ Microsoft Visual Studio .NET 2003 \ SDK \ v1. 1 \ include "-I" ...... \ mkspecs \ win32-g ++ "-o release \ moc.o moc.cpp

...

g ++ -enable-stdcall-fixup -Wl, -enable-auto-import -Wl, -enable-runtime-pseudo-rel oc -Wl, -s -Wl, -subsystem, консоль -mthreads -Wl -o ...... \ bin \ moc.exe release / m oc.o release / preprocessor.o release / generator.o release / parser.o release / token.orelease / main.o -L "c: \ Program Files \ Microsoft Visual Studio .NET 2003 \ SDK \ v1.1 \ Lib \" -LC: /Qt-static/4.6.3/src/tools/bootstrap/release -lbootstrap -luser32 release / moc.o: moc.cpp :(. text + 0x14b): неопределенная ссылка на QByteArray::shared_ null'<br> release/moc.o:moc.cpp:(.text+0x150): undefined reference to QByteArray :: shared_ null '
release / moc.o: moc.cpp :(. text + 0x156): неопределенная ссылка на `QByteArray :: shared_

...

Список неопределенных ссылок на самом деле намного длиннее.

Это из коробкина красивой установке Windows по умолчанию.Интересно, я делаю что-то не так или в инструментарии есть ошибка.

1 Ответ

1 голос
/ 24 июня 2010

У меня были похожие проблемы. В моем случае Visual Studio установил параметры среды
INCLUDE и LIB, которые запутали марку.

Решением было отключить их из командной строки

set INCLUDE=
set LIB=

перед компиляцией библиотек Qt.

...