1

我想在 Windows 平台(Windows XP SP3)上编译 Qt 工具包的静态版本。我下载了适用于 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'
g++ -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,console -mthreads -Wl -o .... ..\bin\moc.exe release/m oc.o release/preprocessor.o release/generator.o release/parser.o release/token.o release/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' release/moc.o:moc.cpp:(.text+0x156): 未定义引用 `QByteArray::shared_QByteArray::shared_ null'
release/moc.o:moc.cpp:(.text+0x150): undefined reference to

...

未定义的引用列表实际上要长得多。

这在相当默认的 Windows 安装中是开箱即用的。我想知道是我做错了什么还是工具包中有错误。

4

1 回答 1

1

我有类似的问题。在我的情况下,Visual Studio 设置了环境参数
INCLUDELIB这混淆了制作。

解决方案是从命令行禁用它们

set INCLUDE=
set LIB=

在编译 Qt 库之前。

于 2010-06-24T11:32:43.477 回答