Компиляция программы Qt в Windows XP с помощью g ++ от MinGW - PullRequest
3 голосов
/ 14 октября 2008

У меня есть приложение-заглушка Qt, и я продолжаю получать ошибки компилятора

#include <QApplication>

int main(int argc, char *argv[])
 {
     return 0;
 }

Я использовал qmake -project и qmake команды и, насколько я могу судить они сделали свою работу правильно. Когда я впоследствии позвоню make по команде В строке я получаю следующую ошибку:

g++ -c -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT
-DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I
'../../../../qt/include/QtCore' -I'../../../../qt/include/QtCore' -I'../../../..
/qt/include/QtGui' -I'../../../../qt/include/QtGui' -I'../../../../qt/include' -
I'.' -I'c:/qt/include/ActiveQt' -I'release' -I'.' -I'../../../../qt/mkspecs/defa
ult' -o release/Main.o Main.cpp
cc1plus.exe: Invalid option 'threads'
make[1]: *** [release/Main.o] Error 1
make: *** [release] Error 2

Мои поиски в Google говорят мне, что важно сохранять потоки, но не как исправить эту ошибку. Любая помощь будет оценена.

РЕДАКТИРОВАТЬ (скопировано из ответа ОП слева):

Теперь я получаю:

g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel oc 
-Wl,-s -pthread -Wl -Wl,-subsystem,windows -o release/raytrace.exe 
object_scr ipt.raytrace.Release  -L'c:/qt/lib' -lmingw32 -lqtmain -lQtGui -lgdi32 
-lcomdlg3 2 -loleaut32 -limm32 -lwinmm -lwinspool -lmsimg32 -lQtCore -lkernel32 
-luser32 - lshell32 -luuid -lole32 -ladvapi32 -lws2_32 
g++: unrecognized option `-pthread' 
/cygnus/cygwin-b20/H-i586-cygwin32/i586-cygwin32/bin/ld: cannot open -lmsimg32: 
No such file or directory collect2: 
ld returned 1 exit status make[1]: *** 
[release/raytrace.exe] Error 1 make: *** [release] Error 2

Ответы [ 4 ]

3 голосов
/ 14 октября 2008

++ milot

Я использую MinGW только для компиляции Qt в Windows, и это самый простой способ убедиться, что у вас есть все, что вам нужно.

Вот ссылка на версию Qt с открытым исходным кодом: http://trolltech.com/downloads/opensource/appdev/windows-cpp

Используйте ссылку «Или скачать Qt с включенным компилятором MinGW: Размер: 149,3 Мб».

Другой способ использовать MinGW - это скомпилировать Qt с MinGW и затем скомпилировать ваше приложение, но это зависит от того, компилируете ли вы в MSYS или просто используете MinGW.

2 голосов
/ 14 октября 2008

Ну, у меня была похожая проблема раньше, когда я устанавливал MingW, загруженный из Интернета, но, с другой стороны, при установке Qt он попросит вас скачать версию MingW, совместимую с Qt. Итак, вы пытались установить его, когда установщик Qt спросил вас?

1 голос
/ 09 июня 2009

Qt 4.5 имеет Qt Creator 1.1, который легко разрабатывать приложения.

Проектирование и кодирование объединены в Qt Creator и более удобны в использовании.

вы можете испытать это как использование VB IDE (или скорее как eclipse, netbeans и т.д.)

при запуске приложения. проект компилируется в режиме отладки или выпуска.

0 голосов
/ 14 октября 2008

Основано на последующем ответе спрашивающего, а не на исходный вопрос.

В командной строке MSYS запустите "ls /mingw/lib/libmsimg32.a" и посмотрите, есть ли у вас этот файл. Моя установка делает (MinGW GCC 3.4.5). Если у вас есть этот файл, вам может потребоваться добавить -L / mingw / lib. Если у вас нет файла, возможно, вы пропустили установку части windows api MinGW.

В любом случае удалить -pthread. Вы используете Win32 API.

Если это не работает, вам нужно указать, какую версию MinGW вы используете и, если вы используете MSYS, какую версию MSYS.

...