首页 新闻 会员 周边 捐助

我用的VS2010,CGAL4.2,Qt5,为什么Qt4.8的例程跑不出呢?如何破解?

0
悬赏园豆:20 [待解决问题]

#include <iostream>
#include <boost/format.hpp>
#include <QtGui>
#include<QtWidgets>
#include <CGAL/Qt/GraphicsViewNavigation.h>
#include <QLineF>
#include <QRectF>
int main(int argc, char **argv)
{
QApplication app(argc, argv);
QGraphicsScene scene;
scene.setSceneRect(0,0, 100, 100);
scene.addRect(QRectF(0,0, 100, 100), QPen(QColor(255,0,0)));
scene.addLine(QLineF(0,0, 100, 100));
scene.addLine(QLineF(0,100, 100, 0));
QGraphicsView* view = new QGraphicsView(&scene);
CGAL::Qt::GraphicsViewNavigation navigation;
view->installEventFilter(&navigation);
view->viewport()->installEventFilter(&navigation);
view->setRenderHint(QPainter::Antialiasing);
view->show();
return app.exec();
}

错误提示:

1>LINK : fatal error LNK1104: 无法打开文件“CGAL_Qt4-vc100-mt-gd-4.2.lib”

如果把#include<QtWidgets>去掉,则会有:

1>f:\program files\microsoft visual studio 10.0\myproject\testqt\testqt\qttest1.cpp(10): error C2079: “app”使用未定义的 class“QApplication”
1>f:\program files\microsoft visual studio 10.0\myproject\testqt\testqt\qttest1.cpp(10): error C2078: 初始值设定项太多
1>f:\program files\microsoft visual studio 10.0\myproject\testqt\testqt\qttest1.cpp(10): error C2440: “初始化”: 无法从“char **”转换为“int”
1> 没有使该转换得以执行的上下文
1>f:\program files\microsoft visual studio 10.0\myproject\testqt\testqt\qttest1.cpp(11): error C2079: “scene”使用未定义的 class“QGraphicsScene”
1>f:\program files\microsoft visual studio 10.0\myproject\testqt\testqt\qttest1.cpp(12): error C2228: “.setSceneRect”的左边必须有类/结构/联合
1> 类型是“int”
1>f:\program files\microsoft visual studio 10.0\myproject\testqt\testqt\qttest1.cpp(13): error C2228: “.addRect”的左边必须有类/结构/联合
1> 类型是“int”
1>f:\program files\microsoft visual studio 10.0\myproject\testqt\testqt\qttest1.cpp(14): error C2228: “.addLine”的左边必须有类/结构/联合
1> 类型是“int”
1>f:\program files\microsoft visual studio 10.0\myproject\testqt\testqt\qttest1.cpp(15): error C2228: “.addLine”的左边必须有类/结构/联合
1> 类型是“int”
1>f:\program files\microsoft visual studio 10.0\myproject\testqt\testqt\qttest1.cpp(16): error C2514: “QGraphicsView”: 类没有构造函数
1> f:\qt\qt5.0.1\5.0.1\msvc2010\include\qtcore\qcoreevent.h(321) : 参见“QGraphicsView”的声明
1>f:\program files\microsoft visual studio 10.0\myproject\testqt\testqt\qttest1.cpp(18): error C2027: 使用了未定义类型“QGraphicsView”
1> f:\qt\qt5.0.1\5.0.1\msvc2010\include\qtcore\qcoreevent.h(321) : 参见“QGraphicsView”的声明
1>f:\program files\microsoft visual studio 10.0\myproject\testqt\testqt\qttest1.cpp(18): error C2227: “->installEventFilter”的左边必须指向类/结构/联合/泛型类型
1>f:\program files\microsoft visual studio 10.0\myproject\testqt\testqt\qttest1.cpp(19): error C2027: 使用了未定义类型“QGraphicsView”
1> f:\qt\qt5.0.1\5.0.1\msvc2010\include\qtcore\qcoreevent.h(321) : 参见“QGraphicsView”的声明
1>f:\program files\microsoft visual studio 10.0\myproject\testqt\testqt\qttest1.cpp(19): error C2227: “->viewport”的左边必须指向类/结构/联合/泛型类型
1>f:\program files\microsoft visual studio 10.0\myproject\testqt\testqt\qttest1.cpp(19): error C2227: “->installEventFilter”的左边必须指向类/结构/联合/泛型类型
1>f:\program files\microsoft visual studio 10.0\myproject\testqt\testqt\qttest1.cpp(20): error C2027: 使用了未定义类型“QGraphicsView”
1> f:\qt\qt5.0.1\5.0.1\msvc2010\include\qtcore\qcoreevent.h(321) : 参见“QGraphicsView”的声明
1>f:\program files\microsoft visual studio 10.0\myproject\testqt\testqt\qttest1.cpp(20): error C2227: “->setRenderHint”的左边必须指向类/结构/联合/泛型类型
1>f:\program files\microsoft visual studio 10.0\myproject\testqt\testqt\qttest1.cpp(21): error C2027: 使用了未定义类型“QGraphicsView”
1> f:\qt\qt5.0.1\5.0.1\msvc2010\include\qtcore\qcoreevent.h(321) : 参见“QGraphicsView”的声明
1>f:\program files\microsoft visual studio 10.0\myproject\testqt\testqt\qttest1.cpp(21): error C2227: “->show”的左边必须指向类/结构/联合/泛型类型
1>f:\program files\microsoft visual studio 10.0\myproject\testqt\testqt\qttest1.cpp(22): error C2228: “.exec”的左边必须有类/结构/联合
1> 类型是“int”
1>
1>生成失败。
1>
1>已用时间 00:00:06.67
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

到底怎么办啊?

peterhao89的主页 peterhao89 | 初学一级 | 园豆:182
提问于:2013-04-05 01:26
< >
分享
所有回答(1)
0

博主  你好 我现在也遇到和你同样的问题

LINK : fatal error LNK1104: 无法打开文件“CGAL_Qt4-vc100-mt-gd-4.3.lib”

请问博主是怎么解决的?

不吝赐教

刘54 | 园豆:202 (菜鸟二级) | 2014-11-12 21:25

嗯,最后没办法我只好用改用Qt4.8了。感觉5.0变化太大了

支持(0) 反对(0) peterhao89 | 园豆:182 (初学一级) | 2014-11-12 21:46

@peterhao89: 这样啊,看来是版本的问题,我用的是QT5.3.2。我在国外的论坛上面看到他们在编译CGAL之后生成了四个lib,而我只有3个,唯独没有CGAL_Qt4-vc100-mt-gd-4.3.lib。      昨天晚上就怀疑是QT5的问题,就安装了QT4.8和QTcreator2.8。   
最后折腾了很久,连个QT Hello 都没跑出来。不知道什么原因,烦的要死这个东西弄了很久了,结果昨晚又卸载了。       
上周才接触到QT,什么都不懂。   谢谢    博主的指教

争取今晚搞定

支持(0) 反对(0) 刘54 | 园豆:202 (菜鸟二级) | 2014-11-12 21:58

@刘54: 嗯,祝你成功!

支持(0) 反对(0) peterhao89 | 园豆:182 (初学一级) | 2014-11-12 22:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册