qt-sdk-win-opensource-2010.02.1.exe 安装后,简单的程序都不能编译

llzhe 2010-04-12 04:24:30
代码如下:
#include <QtGui>
#include "window.h"

int main(int argc, char **argv)
{
Q_INIT_RESOURCE(easing);
QApplication app(argc, argv);
Window w;
w.resize(400, 400);
w.show();
return app.exec();
}
这个还是qt自带的测试程序,报错信息如下:
tmp/obj/debug_shared/main.o: In function `Z5qMainiPPc':
C:\Qt\2010.02.1\qt\examples\animation\easing/main.cpp:48: undefined reference to `_imp___ZN12QApplicationC1ERiPPci'
C:\Qt\2010.02.1\qt\examples\animation\easing/main.cpp:52: undefined reference to `_imp___ZN12QApplication4execEv'
C:\Qt\2010.02.1\qt\examples\animation\easing/main.cpp:52: undefined reference to `_imp___ZN12QApplicationD1Ev'
C:\Qt\2010.02.1\qt\examples\animation\easing/main.cpp:52: undefined reference to `_imp___ZN12QApplicationD1Ev'
tmp/obj/debug_shared/main.o:C:\Qt\2010.02.1\qt\examples\animation\easing/../../../include/QtGui/../../src/gui/kernel/qwidget.h:996: undefined reference to `_imp___ZN7QWidget6resizeERK5QSize'
tmp/obj/debug_shared/main.o: In function `~Window':
C:\Qt\2010.02.1\qt\examples\animation\easing/window.h:57: undefined reference to `_imp___ZN14QGraphicsSceneD1Ev'
C:\Qt\2010.02.1\qt\examples\animation\easing/window.h:57: undefined reference to `_imp___ZN7QWidgetD2Ev'
C:\Qt\2010.02.1\qt\examples\animation\easing/window.h:57: undefined reference to `_imp___ZN7QWidgetD2Ev'
tmp/obj/debug_shared/window.o: In function `Window':


等等。。
是我哪里配置不对吗?还是少安装了什么东西,刚接触qt,还不知道咋回事呢,
...全文
1029 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qter_wd007 2010-04-13
  • 打赏
  • 举报
回复
这种情况还真不少见,错误的提示不尽相同,但原因可能是与环境相关。
Defonds 2010-04-13
  • 打赏
  • 举报
回复
重建一下编译环境
gemfield 2010-04-13
  • 打赏
  • 举报
回复
1楼说的没错,他说的那个帖子可能就是我发的,不过当时用的是弟弟的账号,呵呵。
你的这个错误和我遇到的一模一样,那么原因就是环境变量设置错误。在Qt最左边一列的Projects里有个
bulid enviroment,修改(和你的具体安装目录有关):
INCLUDE:D:\Qt20100201\qt\include;D:\Qt20100201\mingw\include;
PATH:D:\Qt20100201\qt\bin;D:\Qt20100201\mingw\bin;
LIB:D:\Qt20100201\qt\lib;D:\Qt20100201\mingw\lib;
增加(一般情况下已经有了)
MINGW:D:\Qt20100201\mingw;
QTDIR:D:\Qt20100201\qt;
这样就可以了,注意几点:
1、如果你这个例子(比如gemfield.pro)已经编译过,那么只是clean再编译还不行,你必须到gemfield.pro所在的目录里删掉除了源文件和gemfield.pro之外的其他所有文件(makefile之类的),然后再编译运行。
2、这样的设置只针对本项目,运行其他项目的时候同样需要如此设置。
3、bulid enviroment选项部分有个clean system enviroment单选框,把对勾选上也可以达到同样的效果。

总结:我之前在几台电脑上都安装过,linux下一般的情况就是缺少g++包;windows下一般就是环境变量的问题。那些windows之前安装过visual studio之类的编译环境的,一般环境变量肯定有问题,因为Qt的环境变量(像include 、lib)取的就是vs的变量。
CAICALG 2010-04-13
  • 打赏
  • 举报
回复
应该是环境有问题,把例子拷贝到别的地方看看,是不是路径不对
  • 打赏
  • 举报
回复
这个应该是环境的问题,说白了就是没装好,再装次应该可以,要是不行就设置环境变量吧
zxdlms 2010-04-12
  • 打赏
  • 举报
回复
不知道你的是不是这个原因,我看你的错误信息可能不是,不过也应该是环境变量没设置正确。

QTCreator左边一排有一个project,在里面的build environment里面设置include和lib。

我看另一个帖子好像也是你这个问题。
llzhe 2010-04-12
  • 打赏
  • 举报
回复
怎么设置project属性啊?
zxdlms 2010-04-12
  • 打赏
  • 举报
回复
用的是QTcreator吗?反正我直接装了这个用qtcreator就可以了,不过要在projet里把include改成C:\Qt\2010.02.1\mingw\include,lib改成C:\Qt\2010.02.1\mingw\lib,clean,qmake然后再build

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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