QT编译报错:Please #define _AFXDLL or do not use /MD[d],请大神指导折腾一下午终成此文 理论上本教程支持其他编译环境和qt版本 环境:qt5.2.1源码包(

2023-07-06 14:36:43 浏览数 (1)

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,帮助里面的内容就全了

0 人点赞