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

问题描述:

我在Windows上使用我的QT 5.7 MSVC 2015静态构建(32位和64位)时遇到问题。这些是我运行的命令和输出I得到(具有32位测试以及):QT 5.7 MSVC 2015静态构建不起作用

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与QT Creator和msvc2015 32和64位。
  3. 安装了Visual Studio 2015社区,其中包含所有Visual C++选项 已检查。
  4. 已安装草莓Perl 32位并添加到路径。
  5. 安装Python 2.7.12并添加到路径。
  6. 已安装Ruby并已添加到路径。
  7. 安装了Windows 10 SDK并检查了所有安装选项。
  8. 已将jom安装到自己的目录中。
  9. 下载openssl源文件并按照here构建。
  10. 被修改qtbase \ mkspecs \共同\ 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 
    

也绝对双赢验证32-msvc2015位于静态编译目录的mkspecs目录中。我将qt静态目录重命名为第一个代码片段中的名称。我无法在Google上找到太多内容,所以我希望能在这里发帖。谢谢。我希望这很简单,就像我把一个目录放在路径环境变量中一样...

+0

步骤#2,#7和#10是不必要的。您需要为XP设置MSVC [从命令行定位](https://blogs.msdn.microsoft.com/vcblog/2012/10/08/windows-xp-targeting-with-c-in-visual -studio-2012 /)为32位版本。步骤#13第1-3行是不必要的。 –

+0

还要确保你**不要移动Qt安装**:它不起作用。在'jom install' for Qt之后,前缀必须保留在原来的位置。确保'qmake -query'返回正确的路径。还要确保你的'.pro'文件是健全的:可能首先建立一个简单的Qt例子。 –

+0

我有几个问题关于你说的步骤是不必要的:对于步骤7,如果我们用-opengl桌面或-opengl动态编译,我们是否需要包含在Windows 10 sdk中的directx sdk?重新执行第10步,我们是否需要使用参数-static-runtime进行配置,以便编辑mkspecs文件或者配置是否为我们自动处理这些问题? –

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