QT编译报错:Please #define _AFXDLL or do not use /MD[d],请大神指导
在编译QT工程时,出现错误提示: C1189: #error: Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d],请大神指导
这不是告诉你了么?要么去除/MD编译选项,要么定义_AFXDLL宏。
所以你直接在.pro里加上
DEFINES = _AFXDLL
然后重新qmake/make编译就行了。
折腾一下午终成此文
理论上本教程支持其他编译环境和qt版本
环境:qt5.2.1源码包(这个不用说了官网下载中心http://download.qt-project.org/),msvc2010,qtcreator3.1.1
perl,ruby,python(这三个都是从官网下载的最新版)
准备:
ruby,python请查看自己的安装路径并添加到环境变量path(perl安装时自动添加了),验证方法:打开cmd输入perl或python或ruby -help如果能出现帮助信息则说明相应的软件已添加环境变量,
(如果看到此处问环境变量怎么添加,那么请按ctrl w键,谢谢)
D:Python34;D:rubybin
然后在源码目录下新建一个bat文件,内容为
CALL "F:vs2010VCvcvarsall.bat" x86
set PATH=F:qt-srcqtbasebin;F:qt-srcqtrepotoolsbin;F:qt-srcgnuwin32bin;%PATH%
set QMAKESPEC=win32-msvc2010
第一行的路径为vs2010的路径,具体可以查看如下图所示位置的属性
第二行中的F:qt-src为源码路径,请查看自己的源码路径修改
第三行为使用的编译平台,根据自己使用的编译器修改
然后为此文件新建快捷方式,目标里面修改如下:
只需根据自己的路径修改F:qt-srcbuild.bat即可,其他勿动
%SystemRoot%system32cmd.exe /E:ON /V:ON /k F:qt-srcbuild.bat
确定关闭,打开快捷方式执行echo %path%
查看path路径是否都添加对了
然就可以输入配置命令进行配置了
此处环境变量建议参考官方文档“Qt for Windows - Building from Source”
配置命令:configure -prefix "此处为安装路径" -opensource -release -static -platform win32-msvc2010 -mp -nomake tests -no-icu -skip webkit -nomake examples -opengl desktop
此处只配置了release,所以安装后debug构建是不能使用的
具体有哪些配置参数请输入命令:configure -help>>help.txt
在此目录下会生成一个help.txt的文件,里面非常详细,建议仔细阅读此文件
下面这些参数不要动就行,其他根据需求设置,不设置也可以
-prefix "此处为安装路径" -opensource -release -static -platform win32-msvc2010 -mp -nomake tests -nomake examples -opengl desktop
。。。。。。。。。。。。。。。。
-static 静态编译
-platform 编译平台
-mp 编译时多核处理器的支持
配置完成后
nmake,开始编译,时间比较长
如果没什么错误编译完成后执行nmake install
就会安装到配置中指定的路径
关于更改安装目录的问题:
安装后如果修改了路径在qtcreator会报错,qt比较变态的是在编译时把安装路径hard code到了qmake里面,若要修改还要用二进制编辑qmake把里面的路径全部替换成新的路径
方便的方法,可以在bin目录下新建qt.conf文件内容为:
[paths]
prefix = D:/xxx/xxx
prefix为新的路径
关于删除源码目录后报lib错误的问题,请搜索安装目录下所有prl后缀的文件,将里面指向源码lib目录的路径全部替换为当前Qt目录下的lib目录(可以用ultraedit批量打开,然后批量替换),更改安装目录也建议按此操作,也可以使用我写的一个小根据进行批量修改http://www.qtcn.org/bbs/read-htm-tid-56868.html
补充:1、如果在配置中加入了对mysql的支持,那么你需要将mysql相关的头文件放入qtbaseinclude中,mysql的库文件放入qtbaselib中,否则编译会报错
================================安装qt文档=====================================
按以上结果是没有官方文档的,打开qtcreator的帮助里面基本没啥内容
还是在vs2010下打开命令行工具(如上面的图),
nmake docs
nmake install_docs
注:以上为正常步骤,但是会出错,请将libmysql.dll放到安装目录下的bin目录以及源码目录的qttoolsbin下面
然后打开qtcreator,帮助里面的内容就全了