簡體   English   中英

使用MinGW在Windows上Qt 4.1.4源代碼編譯

[英]Qt 4.1.4 Source Compile on Windows with MinGW

我在編譯Qt框架版本4.1.4的源時遇到問題。 (有關准確的編譯器錯誤文本,請參見附圖)

我正在使用此Qt來源(http://get.qt.nokia.com/qt/source/qt-win-opensource-src-4.1.4.zip)

我正在使用具有GCC版本4.5.0.1的MinGW(來自此處的最新http://sourceforge.net/projects/mingw/files/

在我看來,某些函數原型在qatomic.h是差異的,而GCC包括winbase.h ,這可能是由於Qt 4.1.4 winbase.h

誰能告訴我如何解決這個問題? 通過更改MinGW版本? 還是其他環境設置?

如果有人過去已經使用MinGW成功編譯了Qt 4.1.4,那就太好了,然后讓我知道使用了哪個版本的MinGW和GCC?


編譯器輸出:

D:\Qt\qt-win-opensource-src-4.1.4>mingw32-make

cd src && mingw32-make -f Makefile

mingw32-make[1]: Entering directory `D:/Qt/qt-win-opensource-src-4.1.4/src'
cd winmain && mingw32-make -f Makefile

mingw32-make[2]: Entering directory `D:/Qt/qt-win-opensource-src-4.1.4/src/winma
in'

mingw32-make -f Makefile.Debug all

mingw32-make[3]: Entering directory `D:/Qt/qt-win-opensource-src-4.1.4/src/winma
in'

g++ -c -g -g -Wall -frtti -fexceptions -DQT_THREAD_SUPPORT -DUNICODE -DQT_LARGEF
ILE_SUPPORT -DQT_NEEDS_QMAIN -DQT_NO_CAST_TO_ASCII -DQT3_SUPPORT -DQT_MOC_COMPAT
 -I"D:/Qt/qt-win-opensource-src-4.1.4/include" -I"tmp" -I"D:/Qt/qt-win-opensourc
e-src-4.1.4/include/QtCore" -I"d:\Qt\qt-win-opensource-src-4.1.4\include\qtmain"
 -I"tmp" -I"D:/Qt/qt-win-opensource-src-4.1.4/include/ActiveQt" -I"tmp\moc\debug
_shared" -I"." -I"..\..\mkspecs\win32-g++" -o tmp\obj\debug_shared\qtmain_win.o
qtmain_win.cpp

In file included from D:/Qt/qt-win-opensource-src-4.1.4/include/QtCore/arch/qato
mic.h:1:0,

                 from D:/Qt/qt-win-opensource-src-4.1.4/include/QtCore/../../src
/corelib/thread/qatomic.h:31,

                 from D:/Qt/qt-win-opensource-src-4.1.4/include/QtCore/qatomic.h
:1,

                 from D:/Qt/qt-win-opensource-src-4.1.4/include/QtCore/../../src
/corelib/tools/qbytearray.h:28,

                 from D:/Qt/qt-win-opensource-src-4.1.4/include/QtCore/qbytearra
y.h:1,
                 from qtmain_win.cpp:25:

D:/Qt/qt-win-opensource-src-4.1.4/include/QtCore/arch/../../../src/corelib/arch/
windows/arch/qatomic.h:154:87: error: declaration of C function 'long int Interl
ockedCompareExchange(long int*, long int, long int)' conflicts with

c:\mingw\bin\../lib/gcc/mingw32/4.5.0/../../../../include/winbase.h:1689:13: err
or: previous declaration 'LONG InterlockedCompareExchange(volatile LONG*, LONG,
LONG)' here

D:/Qt/qt-win-opensource-src-4.1.4/include/QtCore/arch/../../../src/corelib/arch/
windows/arch/qatomic.h:155:69: error: declaration of C function 'long int Interl
ockedIncrement(long int*)' conflicts with

c:\mingw\bin\../lib/gcc/mingw32/4.5.0/../../../../include/winbase.h:1702:13: err
or: previous declaration 'LONG InterlockedIncrement(volatile LONG*)' here
D:/Qt/qt-win-opensource-src-4.1.4/include/QtCore/arch/../../../src/corelib/arch/
windows/arch/qatomic.h:156:69: error: declaration of C function 'long int Interl
ockedDecrement(long int*)' conflicts with

c:\mingw\bin\../lib/gcc/mingw32/4.5.0/../../../../include/winbase.h:1693:13: err
or: previous declaration 'LONG InterlockedDecrement(volatile LONG*)' here

D:/Qt/qt-win-opensource-src-4.1.4/include/QtCore/arch/../../../src/corelib/arch/
windows/arch/qatomic.h:157:74: error: declaration of C function 'long int Interl
ockedExchange(long int*, long int)' conflicts with

c:\mingw\bin\../lib/gcc/mingw32/4.5.0/../../../../include/winbase.h:1694:13: err
or: previous declaration 'LONG InterlockedExchange(volatile LONG*, LONG)' here

mingw32-make[3]: *** [tmp\obj\debug_shared\qtmain_win.o] Error 1

mingw32-make[3]: Leaving directory `D:/Qt/qt-win-opensource-src-4.1.4/src/winmai
n'

mingw32-make[2]: *** [debug-all] Error 2

mingw32-make[2]: Leaving directory `D:/Qt/qt-win-opensource-src-4.1.4/src/winmai
n'

mingw32-make[1]: *** [sub-winmain-make_default-ordered] Error 2

mingw32-make[1]: Leaving directory `D:/Qt/qt-win-opensource-src-4.1.4/src'

mingw32-make: *** [sub-src-make_default-ordered] Error 2   

看來您已為Qt復制了包含項。 編譯時從includepaths中排除C:\\ mingw \\ lib \\ gcc \\ mingw32 \\ 4.5.0

謝謝你,但是我已經解決了,我們的組織擁有QT許可證,我已經使用vc ++編譯器編譯了源代碼的商業版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM