• 10222阅读
  • 13回复

我是QT编程的初学者,今天刚刚装好了MinGW + QT,怎么样在Visual MinGW下编译QT程序呢? [复制链接]

上一主题 下一主题
离线redegao
 

只看楼主 倒序阅读 楼主  发表于: 2006-05-10
出现这样的错误:
No rule to make target 'Main.o', needed by 'Hello.exe'. Stop.

Abort!
[ 此贴被XChinux在2006-05-10 23:36重新编辑 ]
离线redegao

只看该作者 1楼 发表于: 2006-05-10
今晚可能没有人回答我了。但我非常想知道怎么配置 Visual MinGW,才能顺利编译QT应用程序
离线redegao

只看该作者 2楼 发表于: 2006-05-10
我的QQ:107247304
初学者
离线redegao

只看该作者 3楼 发表于: 2006-05-11

qmake -project
qmake
make
出现如下错误:
mingw32-make -f Makefile.Debug all
mingw32-make[1]: Entering directory `C:/Qt/examples/tutorial/Hello'
g++ -c -g -g -frtti -fexceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL
-DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"C:/Qt/includ
e/QtCore" -I"C:/Qt/include/QtGui" -I"C:/Qt/include" -I"." -I"C:/Qt/include/Activ
eQt" -I"tmp\moc\debug_shared" -I"." -I"C:/Qt/mkspecs/win32-g++" -o tmp\obj\debug
_shared\main.o main.cpp
g++ -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runt
ime-pseudo-reloc -Wl,-subsystem,windows -o "debug\Hello.exe" tmp\obj\debug_share
d\main.o -L"C:\Qt\lib" -L"C:\Qt\lib" -lmingw32 -lqtmaind -lQtGuid4 -lQtCored4
c:\MinGW\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot fin
d -lQtGuid4
collect2: ld returned 1 exit status
mingw32-make[1]: *** [debug\Hello.exe] Error 1
mingw32-make[1]: Leaving directory `C:/Qt/examples/tutorial/Hello'
mingw32-make: *** [debug-all] Error 2
离线redegao

只看该作者 4楼 发表于: 2006-05-11
这是环境变量:
C:\MinGW\bin;C:\Qt\bin;D:\cygwin\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Symantec\pcAnywhere\;%JAVA_HOME%\bin;C:\Program Files\Microsoft SQL Server\80\Tools\BINN
离线XChinux

只看该作者 5楼 发表于: 2006-05-11
可能是没有生成Debug 库的原因。先生成Debug Library.
否则,你用make release生成release版看看能否通过。如果能的话,那就是你没有Debug Library的原因了。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线redegao

只看该作者 6楼 发表于: 2006-05-11
我试图生成Debug库。但生成的过程中依然报错。
在windows下开发调试QT有什么好工具和方法吗?
离线redegao

只看该作者 7楼 发表于: 2006-05-11
现在mingw32-make
编译最简单的代码可以了。
我试着编译里面例子:
#include <QtUiTools>
#include <QtGui>

#include "calculatorform.h"

CalculatorForm::CalculatorForm(QWidget *parent): QWidget(parent)
{
  QUiLoader loader;

  QFile file(":/forms/calculatorform.ui");
  file.open(QFile::ReadOnly);
  QWidget *formWidget = loader.load(&file, this);
  file.close();

  ui_inputSpinBox1 = qFindChild<QSpinBox*>(this, "inputSpinBox1");
  ui_inputSpinBox2 = qFindChild<QSpinBox*>(this, "inputSpinBox2");
  ui_outputWidget = qFindChild<QLabel*>(this, "outputWidget");

  QMetaObject::connectSlotsByName(this);

  QVBoxLayout *layout = new QVBoxLayout;
  layout->addWidget(formWidget);
  setLayout(layout);

  setWindowTitle(tr("Calculator Builder"));
}

void CalculatorForm::on_inputSpinBox1_valueChanged(int value)
{
  ui_outputWidget->setText(QString::number(value + ui_inputSpinBox2->value()));
}

void CalculatorForm::on_inputSpinBox2_valueChanged(int value)
{
  ui_outputWidget->setText(QString::number(value + ui_inputSpinBox1->value()));
}

报错:
找不到头文件
mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory `C:/Qt/Samples/calculatorbuilder'
g++ -c -O2 -O2 -frtti -fexceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_D
LL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN
-I"C:/Qt/include/QtCore" -I"C:/Qt/include/QtGui" -I"C:/Qt/include" -I"." -I"C:/
Qt/include/ActiveQt" -I"tmp\moc\release_shared" -I"." -I"C:/Qt/mkspecs/win32-g++
" -o tmp\obj\release_shared\calculatorform.o calculatorform.cpp
calculatorform.cpp:24:21: QtUiTools: No such file or directory
calculatorform.cpp: In constructor `CalculatorForm::CalculatorForm(QWidget*)':
calculatorform.cpp:31: error: `QUiLoader' undeclared (first use this function)
calculatorform.cpp:31: error: (Each undeclared identifier is reported only once
for each function it appears in.)
calculatorform.cpp:31: error: expected `;' before "loader"
calculatorform.cpp:35: error: `loader' undeclared (first use this function)
mingw32-make[1]: *** [tmp\obj\release_shared\calculatorform.o] Error 1
mingw32-make[1]: Leaving directory `C:/Qt/Samples/calculatorbuilder'
mingw32-make: *** [release] Error 2

应该怎么配置?
离线XChinux

只看该作者 8楼 发表于: 2006-05-11
这就比较乱了。
因为你的程序如果用到其它的QT库(QtCore和QtGui之外的)的话,它不会自动给你加的,你需要在工程文件中自己把用到的库加上比如:
QT += network
这样的。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线redegao

只看该作者 9楼 发表于: 2006-05-11
要手工编辑PRO文件啊。。。这个可麻烦了。出错的概率也大
我用mingw32-make -I c:\qt\include
这样不行。
这还只是头文件,如果是静态库或者动态库呢
离线guyansrg

只看该作者 10楼 发表于: 2006-05-11
在安装完Qt后,生成的相应菜单里面有这么一项(是DOs命令文件):Qt 4.1.2 (Build Debug Libraries)
这一项是用来生成Debug库的。运行这个文件就可以了。
可要有耐心哦,可能需要很长时间
离线guyansrg

只看该作者 11楼 发表于: 2006-05-11
如果没有这一项的话,也可以在Command界面下运行:%COMSPEC% /k "C:\Qt\4.1.2\bin\qtvars.bat compile_debug"
离线lfm
只看该作者 12楼 发表于: 2006-05-12
建议IDE使用Code:Blocks,比Dev-Cpp还好用的多
离线snipertheone

只看该作者 13楼 发表于: 2006-05-30
引用第10楼guyansrg2006-05-11 20:22发表的“”:
在安装完Qt后,生成的相应菜单里面有这么一项(是DOs命令文件):Qt 4.1.2 (Build Debug Libraries)
这一项是用来生成Debug库的。运行这个文件就可以了。
可要有耐心哦,可能需要很长时间
[表情]

这破东西怎么这么烦啊.......
我爱学习
快速回复
限100 字节
 
上一个 下一个