VS2013编译Qt 5.7.0(兼容XP)

注意:编译时报以下错误

E:\QtXP\qtbase\src\3rdparty\angle\src\libANGLE/renderer/d3d/d3d11/renderer11_utils.h(33) : error C2065: “ID3D11RenderTargetView”: 未声明的标识符

解决方法为在第4步完成后,修改文件:E:\QtXP\qtbase\src\angle\src\config.pri,注释掉43行:#equals(QMAKE_TARGET_OS, xp): CONFIG -= angle_d3d11,然后再执行第5步及后面的操作.


1. 下载Qt源码

https://download.qt.io/archive/qt/5.7/5.7.0/single/qt-everywhere-opensource-src-5.7.0.zip

2. 将源码解压缩,我放到了E盘根目录,然后将qt-everywhere-opensource-src-5.7.0文件夹名字改为QtXP

3. 在Qt目录下新建文件build.bat,内容如下:

  REM Set up \Microsoft Visual Studio 2013, where <arch> is \c amd64, \c x86, etc.
  CALL "C:\ProgramFiles\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86
  SET _ROOT=E:\QtXP
  SET PATH=%_ROOT%\qtbase\bin;%_ROOT%\gnuwin32\bin;%PATH%
  REM Uncomment the below line when using a git checkout of the source repository
  REM SET PATH=%_ROOT%\qtrepotools\bin;%PATH%
  SET QMAKESPEC=win32-msvc2013
  SET _ROOT=

4. 打开cmd窗口,cd进入E:\QtXP,输入build.bat初始化编译环境

5. 输入命令:configure -prefix "E:\QtXP\build" -platform win32-msvc2013 -target xp -nomake tests -nomake examples -skip qtwebengine,初始化编译配置

6. 输入命令:nmake,开始漫长的编译............

编译完成后,可以在目录E:\QtXP\qtbase\lib下找到Qt5Core.dll, Qt5Gui.dll等链接库文件,在目录E:\QtXP\qtbase\plugins\platforms下找到qwindows.dll等链接库文件. 也可以使用命令: nmake install 将头文件,库文件,exe和dll文件等安装到目录E:\QtXP\build


//===============================================================================================

// 静态编译

打开 E:\QtXP\qtbase\mkspecs\common\msvc-desktop.conf 

QMAKE_CFLAGS_RELEASE    = -O2 -MD
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi
QMAKE_CFLAGS_DEBUG      = -Zi -MDd

改为

QMAKE_CFLAGS_RELEASE    = -O2 -MT
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi
QMAKE_CFLAGS_DEBUG      = -Zi -MTd

即将MD改成MT,MDd改成MTd。动态改成静态

使用命令:configure -prefix "E:\QtXP\build" -platform win32-msvc2013 -target xp -static -nomake tests -nomake examples -skip qtwebengine

VS2013工程需要做以下改动以进行静态链接

1. 属性 -> C/C++ -> 预处理器 -> 预处理器定义

    QT_DLL 修改为 QT_STATIC

2. 属性 -> 链接器 -> 输入 -> 附加依赖项:

dxguid.lib
d3d9.lib
kernel32.lib
user32.lib
shell32.lib
uuid.lib
ole32.lib
advapi32.lib
ws2_32.lib
gdi32.lib
comdlg32.lib
oleaut32.lib
imm32.lib
winmm.lib
qtmaind.lib
Qt5Cored.lib
Qt5Guid.lib
Qt5Widgetsd.lib
qtpcred.lib
libEGLd.lib
libGLESv2d.lib
Qt5OpenGLd.lib
translatord.lib
preprocessord.lib
qwindowsd.lib
qtfreetyped.lib
qtharfbuzzngd.lib
Qt5PlatformSupportd.lib

3. 修改main.cpp

#include <QtPlugin>
Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin);

猜你喜欢

转载自blog.csdn.net/ayang1986/article/details/83792430
今日推荐