在Windows上编译静态Qt构建时未定义的引用

时间:2010-06-24 11:10:36

标签: c++ windows qt mingw32

我想在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”。“ - 我”...... \包括“-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+0x150): undefined reference to
QByteArray :: shared_   空'
  release / moc.o:moc.cpp :(。text + 0x156):未定义引用`QByteArray :: shared _

     

...

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

在非常默认的Windows安装中,这是开箱即用的。我想知道我做错了什么或者工具包中有错误。

1 个答案:

答案 0 :(得分:1)

我有类似的问题。在我的例子中,Visual Studio设置了环境参数
INCLUDELIB混淆了make。

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

set INCLUDE=
set LIB=

在编译Qt库之前。