Je rencontre un problème lors de la compilation de la source de Qt framework version 4.1.4. (Voir l'image ci-jointe pour le texte exact d'erreur de compilateur)Qt 4.1.4 Compiler la source sur Windows avec MinGW
J'utilise cette source de Qt (http://get.qt.nokia.com/qt/source/qt-win-opensource-src-4.1.4 .zip)
et j'utilise MinGW (dernier d'ici http://sourceforge.net/projects/mingw/files/) qui a la version GCC 4.5.0.1
Pour moi, il semble que certains prototypes de fonction sont diff dans qatomic.h
et de GCC winbase.h
, il pourrait être en raison de Qt 4.1.4 est un peu vieux.
Quelqu'un peut-il me dire comment résoudre ce problème? En changeant la version MinGW? Ou un autre environnement?
Ce serait bien si quelqu'un a déjà compilé avec succès Qt avec MinGW dans 4.1.4 passé, alors s'il vous plaît laissez-moi savoir quelle version de MinGW et GCC ont été utilisés?
Sortie compilateur:
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
Est-ce que ça vous dérange de me demander pourquoi vous utilisez 4.1? Est-ce que votre application ne fonctionne pas sur les versions ultérieures de qt? –
Je travaille sur un projet qui a un problème de performance avec QT4.6 (à partir de maintenant), nous devons coder correctement le port et changer certaines parties pour que l'outil fonctionne correctement avec QT4.6, mais cela est prévu pour la publication ultérieure de projet. donc à partir de maintenant je suis coincé avec QT 4.1.4. – Chirag