配制qt静态编译出错

HNSD983704669 2010-12-08 01:42:41
环境 win7 qt-sdk-win-opensource-2010.05 安装包
参照
我的步骤:
一、修改 C:\QT\2010.05\qt\mkspecs\win32-g++\qmake.conf 文件中
QMAKE_LFLAGS = -static -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc
(改好后的)

二、QT Command Prompt 下输入
configure -static -debug-and-release -no-exceptions 没有问题


三、完成第二步后 再输入
编译QT mingw32-make sub-src出错如下:

C:\Qt\2010.05\qt>mingw32-make sub-src
cd src\tools\bootstrap\ && mingw32-make
mingw32-make[1]: Entering directory `C:/QT/2010.05/qt/src/tools/bootstrap'
mingw32-make -f Makefile.Release
mingw32-make[2]: Entering directory `C:/QT/2010.05/qt/src/tools/bootstrap'
g++ -c -O2 -frtti -fno-exceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_BO
OTSTRAPPED -DQT_LITE_UNICODE -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_
NO_CODECS -DQT_NO_DATASTREAM -DQT_NO_GEOM_VARIANT -DQT_NO_LIBRARY -DQT_NO_QOBJEC
T -DQT_NO_STL -DQT_NO_SYSTEMLOCALE -DQT_NO_TEXTSTREAM -DQT_NO_THREAD -DQT_NO_UNI
CODETABLES -DQT_NO_USING_NAMESPACE -DQT_NODLL -I"..\..\..\include" -I"..\..\..\i
nclude\QtCore" -I"..\..\..\include\QtXml" -I"..\..\3rdparty\zlib" -I"c:\Program
Files\Microsoft Visual Studio\VC98\atl\include" -I"c:\Program Files\Microsoft Vi
sual Studio\VC98\mfc\include" -I"c:\Program Files\Microsoft Visual Studio\VC98\i
nclude" -I"c:\MinGW\include" -I"..\..\..\include" -I"..\..\..\mkspecs\win32-g++"
-o tmp\obj\release_static\qisciicodec.o ..\..\corelib\codecs\qisciicodec.cpp
In file included from c:\Program Files\Microsoft Visual Studio\VC98\include/yval
s.h:4,
from c:\Program Files\Microsoft Visual Studio\VC98\include/xstd
def:10,
from c:\Program Files\Microsoft Visual Studio\VC98\include/exce
ption:22,
from c:\Program Files\Microsoft Visual Studio\VC98\include/new:
9,
from ..\..\..\include/QtCore/../../src/corelib/tools/qlist.h:54
,
from ..\..\..\include/QtCore/qlist.h:1,
from ..\..\..\include/QtCore/../../src/corelib/codecs/qtextcode
c.h:46,
from ..\..\..\include/QtCore/qtextcodec.h:1,
from ..\..\corelib\codecs\/qisciicodec_p.h:56,
from ..\..\corelib\codecs\qisciicodec.cpp:41:
c:\Program Files\Microsoft Visual Studio\VC98\include/use_ansi.h:42: warning: ig
noring #pragma comment
In file included from c:\Program Files\Microsoft Visual Studio\VC98\include/xstd
def:10,
from c:\Program Files\Microsoft Visual Studio\VC98\include/exce
ption:22,
from c:\Program Files\Microsoft Visual Studio\VC98\include/new:
9,
from ..\..\..\include/QtCore/../../src/corelib/tools/qlist.h:54
,
from ..\..\..\include/QtCore/qlist.h:1,
from ..\..\..\include/QtCore/../../src/corelib/codecs/qtextcode
c.h:46,
from ..\..\..\include/QtCore/qtextcodec.h:1,
from ..\..\corelib\codecs\/qisciicodec_p.h:56,
from ..\..\corelib\codecs\qisciicodec.cpp:41:
c:\Program Files\Microsoft Visual Studio\VC98\include/yvals.h:19: warning: ignor
ing #pragma warning
c:\Program Files\Microsoft Visual Studio\VC98\include/yvals.h:20: warning: ignor
ing #pragma warning
c:\Program Files\Microsoft Visual Studio\VC98\include/yvals.h:21: warning: ignor
ing #pragma warning
In file included from ..\..\..\include/QtCore/../../src/corelib/global/qglobal.h
:45,
from ..\..\..\include/QtCore/qglobal.h:1,
from ..\..\..\include/QtCore/../../src/corelib/tools/qchar.h:45
,
from ..\..\..\include/QtCore/qchar.h:1,
from ..\..\..\include/QtCore/../../src/corelib/tools/qstring.h:
45,
from ..\..\..\include/QtCore/qstring.h:1,
from ..\..\..\include/QtCore/../../src/corelib/codecs/qtextcode
c.h:45,
from ..\..\..\include/QtCore/qtextcodec.h:1,
from ..\..\corelib\codecs\/qisciicodec_p.h:56,
from ..\..\corelib\codecs\qisciicodec.cpp:41:
c:\Program Files\Microsoft Visual Studio\VC98\include/stddef.h:99: error: redecl
aration of C++ built-in type 'wchar_t'
In file included from c:\Program Files\Microsoft Visual Studio\VC98\include/new:
9,
from ..\..\..\include/QtCore/../../src/corelib/tools/qlist.h:54
,
from ..\..\..\include/QtCore/qlist.h:1,
from ..\..\..\include/QtCore/../../src/corelib/codecs/qtextcode
c.h:46,
from ..\..\..\include/QtCore/qtextcodec.h:1,
from ..\..\corelib\codecs\/qisciicodec_p.h:56,
from ..\..\corelib\codecs\qisciicodec.cpp:41:
c:\Program Files\Microsoft Visual Studio\VC98\include/exception: In member funct
ion 'virtual void std::bad_exception::_Doraise() const':
c:\Program Files\Microsoft Visual Studio\VC98\include/exception:74: error: excep
tion handling disabled, use -fexceptions to enable
mingw32-make[2]: *** [tmp/obj/release_static/qisciicodec.o] Error 1
mingw32-make[2]: Leaving directory `C:/QT/2010.05/qt/src/tools/bootstrap'
mingw32-make[1]: *** [release] Error 2
mingw32-make[1]: Leaving directory `C:/QT/2010.05/qt/src/tools/bootstrap'
mingw32-make: *** [sub-tools-bootstrap-sub_src_target_ordered] Error 2

C:\Qt\2010.05\qt>
...全文
361 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xunxun 2010-12-09
  • 打赏
  • 举报
回复
还有我记得static编译时只要在configure里面加即可,他这个会把自己的参数传递给qmake,因为qmake的static和shared无法并存。
QMAKE_LFLAGS不需要改。
xunxun 2010-12-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 loaden 的回复:]

不要禁用异常!也不要禁用RTTI,这会导致很多奇怪的问题。
另外,如果要静态编译,为何不使用VC编译器?
这样,编译出来的可执行文件要小很多(大约是MinGW编译的2/3)
[/Quote]
lz是用的sdk而不是源码,这个官方自带的shared版默认使用mingw sjlj编译的,lz可能不想麻烦重新编译shared吧
xunxun 2010-12-09
  • 打赏
  • 举报
回复
configure 加入 -platform xxxxx
还有检查你的qmake配置,为啥make时会搜索vc的头文件
老邓 2010-12-09
  • 打赏
  • 举报
回复
更让人奇怪的是,你用MinGW编译出来的Qt库,怎么和VC6的头文件纠缠在一起?
c:\Program Files\Microsoft Visual Studio\VC98\include/exception: In member funct
ion 'virtual void std::bad_exception::_Doraise() const':
c:\Program Files\Microsoft Visual Studio\VC98\include/exception:74: error: excep
tion handling disabled, use -fexceptions to enable
老邓 2010-12-09
  • 打赏
  • 举报
回复
不要禁用异常!也不要禁用RTTI,这会导致很多奇怪的问题。
另外,如果要静态编译,为何不使用VC编译器?
这样,编译出来的可执行文件要小很多(大约是MinGW编译的2/3)
HNSD983704669 2010-12-09
  • 打赏
  • 举报
回复
哥啊 我是用的 QtCreator 啊 但那个也是 动态编译啊 我现 在是要静态编译 也就是说
我编译之后 Copy 到别外一台 window 平台上的 机器 可以 不动安装 Qt的支持 就可以运行 哪位知道 啊?????
ryfdizuo 2010-12-08
  • 打赏
  • 举报
回复
win7 下面不是直接用sdk下载的么。。。
就想叫yoko 2010-12-08
  • 打赏
  • 举报
回复
下个IDE吧
叫QtCreator
我系统是WIN7
以前装过能用
QT的问题你最好去移动版的QT版问问
HNSD983704669 2010-12-08
  • 打赏
  • 举报
回复
是 SDK 下载的啦,它默认是 动态编译的啦,我现在 要静态编译 ,出错啦 ,大侠们 救我啊!!!!

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧