Qt程序release问题

haltwang 2013-02-15 05:59:47
我使用Qt3D模块载入了一个3ds问题。
发布后在自己电脑上运行一切正常。
放到家里winxp的电脑上一打开就直接死掉.
报错:
...全文
441 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
踌伫 2013-11-09
  • 打赏
  • 举报
回复
引用 16 楼 haltwang 的回复:
[quote=引用 14 楼 lee1225 的回复:] 把自己电脑上安装的Qt卸载清理干净,再运行你的程序看看
如果不行呢,还是没办法解决问题。[/quote] 很简单的 你3ds文件的路径不能带中文名,另外3ds模型从3dsMax里导出是需要把导出模型纹理坐标打钩 那个报错的意识就是告诉你 程序找不到你的 3DS 文件
hula 2013-03-01
  • 打赏
  • 举报
回复
把自己电脑上安装的Qt卸载清理干净,再运行你的程序看看
wopabe 2013-03-01
  • 打赏
  • 举报
回复
编译一个发布版就OK了
haltwang 2013-03-01
  • 打赏
  • 举报
回复
引用 14 楼 lee1225 的回复:
把自己电脑上安装的Qt卸载清理干净,再运行你的程序看看
如果不行呢,还是没办法解决问题。
青松2 2013-03-01
  • 打赏
  • 举报
回复
haltwang 2013-02-28
  • 打赏
  • 举报
回复
引用 9 楼 yanbin_1985525 的回复:
你的Qt程序是用什么编译的?
我装的QtSDK,其他程序发布都没有问题。 这次是为了显示3ds的东西,在官网上下了Qt3D的源码,在win7下的QtSDK下编译了Qt3D。然后用Qt3D的类写的程序。 我后来试着把官网上的例子给编译一边,结果也有同样的问题。也就是说不是我代码的问题,是Qt3D这块出了问题。 我想问问各位:在自己电脑上程序正常,放在别人电脑上却直接死掉,可能有哪些问题。除了DLL没拷贝对,之外有没有别的问题?
haltwang 2013-02-28
  • 打赏
  • 举报
回复
引用 6 楼 lhfslhfs 的回复:
谢谢
haltwang 2013-02-28
  • 打赏
  • 举报
回复
引用 7 楼 oXiFangShiBai 的回复:
我是菜鸟,我听说,你的qt软件要在什么平台用,【WIN7 WIN XP ,MAC,UNIX】 你就要在对应的平台重新编译一次
嗯,是的,我是在windows下编译了的。
醉过方知酒烈 2013-02-27
  • 打赏
  • 举报
回复
你的Qt程序是用什么编译的?
  • 打赏
  • 举报
回复
有可能是你的XP坏了, 再找一台试试
  • 打赏
  • 举报
回复
我是菜鸟,我听说,你的qt软件要在什么平台用,【WIN7 WIN XP ,MAC,UNIX】 你就要在对应的平台重新编译一次
青松2 2013-02-26
  • 打赏
  • 举报
回复
haltwang 2013-02-26
  • 打赏
  • 举报
回复
经试验,不是代码的问题。 因为: 我把Qt3D官网上的代码复制下来,编译后。出现的问题跟之前的一模一样。 dll出问题了?还是Qt3D模块编译的时候就有问题?
haltwang 2013-02-26
  • 打赏
  • 举报
回复
这个程序就用了Qt3D OpenGL俩模块。 发布时带了: libgcc_s_dw2-1.dll mingwm10.dll Qt3D.dll QtCore4.dll QtGui4.dll QtOpenGL4.dll QtNetwork4.dll 在自己的电脑上运行一切正常,放别人的电脑上运行就直接死了,初了DLL的问题之外,还可能是什么问题呢?
haltwang 2013-02-18
  • 打赏
  • 举报
回复
引用 2 楼 snailjava 的回复:
家里电脑的Qt环境可能跟你编译的Qt环境不一样~
家里的电脑没装任何集成编译环境,我是做好了发布版然后放过去运行的。
飞羽飞之猪 2013-02-17
  • 打赏
  • 举报
回复
家里电脑的Qt环境可能跟你编译的Qt环境不一样~
haltwang 2013-02-15
  • 打赏
  • 举报
回复
上代码: mainWidget.h #ifndef MAINWIDGET_H #define MAINWIDGET_H #include <QWidget> #include "modelview.h" #include <QSlider> #include <QVBoxLayout> class mainWidget : public QWidget { Q_OBJECT public: explicit mainWidget(QWidget *parent = 0); ~mainWidget(); signals: public slots: private: QSlider *x_slider; QSlider *y_slider; QSlider *z_slider; ModelView *m_3dView; QVBoxLayout *mainLayout; }; #endif // MAINWIDGET_H mainWidget.cpp #include "mainwidget.h" mainWidget::mainWidget(QWidget *parent) : QWidget(parent) { mainLayout = new QVBoxLayout(this); m_3dView = new ModelView(this); m_3dView->setPath(QString("E:/Plan2.3ds")); x_slider = new QSlider(Qt::Horizontal); x_slider->setMaximum(360); connect(x_slider,SIGNAL(valueChanged(int)),m_3dView,SLOT(setX_Angle(int))); y_slider = new QSlider(Qt::Horizontal); y_slider->setMaximum(360); connect(y_slider,SIGNAL(valueChanged(int)),m_3dView,SLOT(setY_Angle(int))); z_slider = new QSlider(Qt::Horizontal); z_slider->setMaximum(360); connect(z_slider,SIGNAL(valueChanged(int)),m_3dView,SLOT(setZ_Angle(int))); mainLayout->addWidget(m_3dView); mainLayout->addWidget(x_slider); mainLayout->addWidget(y_slider); mainLayout->addWidget(z_slider); Q_CHECK_PTR(x_slider); Q_CHECK_PTR(y_slider); Q_CHECK_PTR(z_slider); Q_CHECK_PTR(m_3dView); Q_CHECK_PTR(mainLayout); resize(900,500); } mainWidget::~mainWidget() { delete x_slider; delete y_slider; delete z_slider; delete m_3dView; delete mainLayout; } modelView.h #ifndef MODELVIEW_H #define MODELVIEW_H #include <Qt3D/qglview.h> #include <QWidget> #include <Qt3D/qglabstractscene.h> #include <Qt3D/qglscenenode.h> class ModelView : public QGLView { Q_OBJECT public: ModelView(QWidget *parent = 0); ~ModelView(); void setPath(QString x); protected: void initializeGL(QGLPainter *painter); void paintGL(QGLPainter *painter); private: QGLAbstractScene *m_scene; int x_angle; int y_angle; int z_angle; QString m_3d_model_path; private slots: void setX_Angle(int x); void setY_Angle(int y); void setZ_Angle(int z); }; #endif modelView.cpp #include "modelview.h" #include <Qt3D/qglabstractscene.h> ModelView::ModelView(QWidget *parent) { x_angle = 0; y_angle = 0; z_angle = 0; } ModelView::~ModelView() { delete m_scene; } void ModelView::initializeGL(QGLPainter *painter) { Q_UNUSED(painter); m_scene = QGLAbstractScene::loadScene(m_3d_model_path); Q_CHECK_PTR(m_scene); } void ModelView::paintGL(QGLPainter *painter) { QGLSceneNode *o = m_scene->mainNode(); painter->modelViewMatrix().translate(0.0, 0.0,-800.0); painter->modelViewMatrix().rotate(x_angle, 1.0, 0.0, 0.0); painter->modelViewMatrix().rotate(y_angle, 0.0, 1.0, 0.0); painter->modelViewMatrix().rotate(z_angle, 0.0, 0.0, 1.0); o->draw(painter); } //3d模型绕x轴旋转的角度 void ModelView::setX_Angle(int x) { x_angle = x; updateGL(); } //3d模型绕y轴旋转的角度 void ModelView::setY_Angle(int x) { y_angle = x; updateGL(); } //3d模型绕z轴旋转的角度 void ModelView::setZ_Angle(int x) { z_angle = x; updateGL(); } //设置3d模型路径 void ModelView::setPath(QString x) { m_3d_model_path = x; m_scene = QGLAbstractScene::loadScene(m_3d_model_path); } main.cpp #include <QApplication> #include "mainwidget.h" #include <QTextCodec> int main(int argc, char *argv[]) { QApplication app(argc, argv); mainWidget view; view.show(); return app.exec(); }

16,240

社区成员

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

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