下载Qt

在Qt的官网上必须得登陆才能下载,这让我倍感烦躁,于是百度下找到这个链接http://download.qt.io/archive/qt/进入无需登陆即可下载,还能选择一些历史版本,因为我装了VS2015,所以我选择支持MSVC2015编译套件

的Qt:

centos qt编译指定openssl路径_命令行工具

上面两个都要安装,一个用来生成32位程序,另一个用来生成64位程序

从命令行编译Qt程序

新建一个文本文件,将其后缀改成.cpp,然后将下面代码写入其中:

#include<QApplication>
#include<QLabel>

int main(int argc, char*argv[])
{
  QApplication app(argc,argv);
  QLabel * label = new QLabel("Hello Qt!");
  label->show();
  return app.exec();
}

在两个版本的Qt安装完成后,在开始菜单可以找到Qt提供的命令行工具:

centos qt编译指定openssl路径_c/c++_02

一个32位的,用来生成32位的Qt程序;一个64位的,用来生成64位的Qt程序;这里我选择32位的Qt命令行工具:

centos qt编译指定openssl路径_Qt_03

这里-o参数指明了生成工程文件的名称,如果不使用-o参数指明,默认名称为当前文件夹的名称,执行qmake -project

后将生成一个后缀为.pro的工程文件,然后在执行qmake 工程文件名称.pro 命令后就生成了Makefile文件,

安装VS2015后也会有命令行工具:

centos qt编译指定openssl路径_命令行工具_04

因为我要生成的是32位程序,所以要使用生成32位程序的VS命令行工具来编译源码:

centos qt编译指定openssl路径_命令行工具_05

找不到文件,这是因为从Qt4到Qt5一些基础类模块发生了变化,Qt也给出了解决方案:

https://wiki.qt.io/Transition_from_Qt_4.x_to_Qt5 我们在工程文件中直接加入一行"QT+=widgets",或者在生成工程文件时在qmake命令后面加上这行也行:

centos qt编译指定openssl路径_Qt_06

然后在用VS的命令行工具执行nmake Debug Release同时编译调试版和发布版程序:

centos qt编译指定openssl路径_命令行工具_07

 

注意:

不要在Qt的命令行中执行nmake命令,编译时会有下面奇怪的错误:

centos qt编译指定openssl路径_命令行工具_08

不要使用生成64位程序的VS命令行工具去编译32位Qt命令行生成的Makefile,否则链接时会报错:

centos qt编译指定openssl路径_命令行工具_09

也不要用生成32位程序的VS命令行工具去编译64位Qt命令行生成的Makefile,否则链接时会报: 模块计算机类型“X64”与目标计算机类型“x86”冲突错误执行nmake命令后,release和debug文件夹中会有可执行文件:

centos qt编译指定openssl路径_命令行工具_10

双击即可运行如果运行时提示缺失Qtxxxxx.dll则需要把Qt安装目录下的bin文件夹路径添加到系统环境变量PATH中即可 我这里安装了32位和64位两个版本的qt,如果程序运行时报:

centos qt编译指定openssl路径_Qt_11

一般32位程序加载64位的依赖库,或者64位程序加载32位的依赖库时会报错;Qt的依赖库在其安装目录下的bin 文件夹下,如果当前是32位程序报这个错误时,只需要把32位Qt安装目录下的bin文件夹路径提最前面就行, 如果当前是64位程序报这个错误时,只需要把64位Qt安装目录下的bin文件夹路径提最前面就可以;