QT 5.7 MSVC 2015静态构建不起作用

时间:2016-11-16 00:39:08

标签: c++ windows qt static-linking

我在Windows上使用我的QT 5.7 MSVC 2015静态版本(32位和64位)时遇到了问题。这些是我运行的命令和我得到的输出(也用32位测试):

C:\Users\Josh>set PATH=C:\Qt\static\Qt 5.7.0 MSVC2015_Static_x64\bin;%PATH%

C:\Users\Josh>cd "\Users\Josh\Mozy Sync\ReplicatorNew\ReplicatorNew"

C:\Users\Josh\Mozy Sync\ReplicatorNew\ReplicatorNew>qmake ReplicatorNew.pro
Could not find qmake configuration file win32-msvc2015.
Error processing project file: ReplicatorNew.pro

以下是我配置QT静态构建的步骤:

  1. 下载QT 5.7源并解压缩到自己的目录。
  2. 使用QT Creator和msvc2015 32和64位安装QT。
  3. 使用所有Visual C ++选项安装Visual Studio 2015社区 检查。
  4. 安装草莓Perl 32位并加入路径。
  5. 安装了Python 2.7.12并添加到路径。
  6. 安装了Ruby并添加到路径。
  7. 已安装Windows 10 SDK并检查安装中的所有选项。
  8. 将jom安装到自己的目录。
  9. 下载了openssl源代码并按照here构建。
  10. 将qtbase \ mkspecs \ common \ msvc-desktop.conf编辑为以下内容:

     QMAKE_CFLAGS_RELEASE    = -O2 -MT
     QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi
     QMAKE_CFLAGS_DEBUG      = -Zi -MTd
    
  11. 将此数字换成32位:

     cd "\Program Files (x86)\Microsoft Visual Studio 14.0\vc"
     vcvarsall.bat x86
    
  12. 64位:

     cd "\Program Files (x86)\Microsoft Visual Studio 14.0\vc"
     vcvarsall.bat amd64
    
  13. 然后这些:

     set QMAKESPEC=win32-msvc2015
     set QTDIR=C:\Qt\Static\qt-everywhere-enterprise-src-5.7.0\qtbase
     set PATH=C:\Qt\Static\qt-everywhere-enterprise-src-5.7.0\qtbase\bin;%PATH%
     cd C:\Qt\Static\qt-everywhere-enterprise-src-5.7.0
    
  14. 对于32位:

     configure -debug-and-release -confirm-license -platform win32-msvc2015 -opengl desktop -static -target xp -nomake examples -no-compile-examples -nomake tests -prefix C:\Qt\static\MSVC2015_Static_x86 -openssl -L C:\OpenSSL-win32\lib -l libeay32 -l ssleay32 -I C:\OpenSSL-win32\include -qt-libpng -qt-libjpeg -qt-zlib
    
  15. 对于64位:

     configure -debug-and-release -confirm-license -platform win32-msvc2015 -opengl desktop -static -nomake examples -no-compile-examples -nomake tests -prefix C:\Qt\static\MSVC2015_Static_x64 -openssl -L C:\OpenSSL-win64\lib -l libeay32 -l ssleay32 -I C:\OpenSSL-win64\include -qt-libpng -qt-libjpeg -qt-zlib
    
  16. 然后运行这些:

     C:\Qt\static\jom_1_1_1\jom.exe -j 4
     C:\Qt\static\jom_1_1_1\jom.exe -j 4 install
    
  17. 还明确验证了win32-msvc2015位于静态构建目录的mkspecs目录中。我将qt静态目录重命名为第一个代码段中的名称。我无法在谷歌上找到太多信息,所以我发布在这里希望得到帮助。谢谢。我希望它很简单,就像我遗漏了一个目录来放入路径环境变量......

1 个答案:

答案 0 :(得分:2)

原来问题是我在构建之后重命名了QT静态构建目录,这打破了它。快速修复:将其重命名为原始的 configure -prefix 名称。谢谢库巴!