QT学习——QT命令行开发环境搭建的几个问题以及处理

来源:互联网 发布:希捷 数据恢复服务 编辑:程序博客网 时间:2024/05/22 03:43

QT命令行开发环境搭建的几个问题以及处理

刚学QT,看了丁林松老师的视频《丁林松QT系列教程:1.手工布局》,自己动手写了代码,在命令行编译和运行程序中发现有几个问题,这边把处理方法记录下来。

这里的问题只是针对命令行下编译Qt程序出现的,在QtCreator下运行基本不会有以下问题,大神可以无视。

备注:

我开发环境如下:

操作系统——Win8 64

VisualStudio——VS2013

QtCreator——3.1.2

Qt——5.3.1

 

示例程序:

#include <QApplication>

#include <QPushButton>

#include <QLineEdit>

#include <QHBoxLayout>

#include <QWidget>

#include <QLabel>

 

int main(int argc,char** argv)

{

QApplication app(argc,argv);

QLabel *infoLabel = new QLabel;

QLabel *cmdLabel = new QLabel;

QLineEdit *cmdLineEdit = new QLineEdit;

QPushButton *submitButton = new  QPushButton;

QPushButton *cancelButton = new QPushButton;

QPushButton *browseButton = new QPushButton;

infoLabel->setText("Please input command");

cmdLabel->setText("Open:");

cmdLineEdit->clear();

submitButton->setText("Submit");

cancelButton->setText("Cancel");

browseButton->setText("Browse");

QHBoxLayout *buttonLayout = new QHBoxLayout;

buttonLayout->addWidget(submitButton);

buttonLayout->addWidget(cancelButton);

buttonLayout->addWidget(browseButton);

QHBoxLayout *cmdLayout = new QHBoxLayout;

cmdLayout->addWidget(cmdLabel);

cmdLayout->addWidget(cmdLineEdit);

QVBoxLayout *mainLayout = new QVBoxLayout;

mainLayout->addWidget(infoLabel);

mainLayout->addLayout(cmdLayout);

mainLayout->addLayout(buttonLayout);

QWidget *window = new QWidget;

window->setLayout(mainLayout);

window->setWindowTitle("cmd");

window->show();

return app.exec();

}

 

编译、执行过程:

qmake -project

qmake

Nmake

 

问题1.

程序写完,在命令行执行qmake -project(生成QT工程文件),提示“'qmake' 不是内部或外部命令,也不是可运行的程序或批处理文件。”如下图:

 


 

处理方法:

qmake路径(QT安装目录\Qt5.3.1\5.3\msvc2013\bin)添加到环境变量Path,或者用开始菜单QtCreator提供的命令行Qt 5.3 32-bit for Desktop(MSVC 2013)执行qmake -project.

 

问题2

执行nmake提示“'nmake' 不是内部或外部命令,也不是可运行的程序或批处理文件”。如下图:

 


处理方法如下:

运行VS2013安装路径vc目录下的vcvarsall.bat(可以手工把这个文件拖到命令行执行)。这里不能直接把nmake加入到环境变量,否则还会提示“gdi32.lib”等找不到。所以还是运行vcvarsall.bat比较保险。

 

问题3

编译程序,提示“fatal error C1083: 无法打开包括文件QApplication: No such file or directory”。如下图:

 

解决方法如下:

在工程文件(.pro)中加入一行QT += widgets。或者把#include <QApplication>改为#include <QtWidgets/QApplication>。显然前者比较方便。

问题4

执行nmake编译过程中出现大量“无法解析的外部符号”,也就是大量QT库找不到。

 

解决方法如下:

nmake之前把QT库加入LIB中。执行“LIB /LIBPATH:D:\QtInstall\Qt5.3.1\5.3\msvc2013\lib”,其中D:\QtInstallQT安装路径。

 

问题5

编译成功执行.exe程序出现Qt5Widgets.dll等好几个DLL找不到。

 

解决方法如下:

拷贝QT安装目录\Qt5.3.1\5.3\msvc2013\bin下面对应的DLL到程序.exe所在路径,或者把QT安装目录\Qt5.3.1\5.3\msvc2013\bin加入到环境变量后,右键“以管理员身份运行”。成功执行。如下图


 

问题6

执行程序的时候有如下错误“This application failed to start because it could not find or load the Qt platform plugin “windows” ”


解决方法如下:

将QT安装目录\Qt5.3.1\5.3\msvc2013\bin\libEGL.dllQT安装目录\Qt5.3.1\5.3\msvc2013\plugins\platforms\qwindows.dll放入到可执行程序(.exe)处。

0 0