c++ - QT 5.7 MSVC 2015 静态构建不工作

标签 c++ windows qt static-linking

我在 Windows 上使用 32 位和 64 位 QT 5.7 MSVC 2015 静态版本时遇到问题。这些是我运行的命令和我得到的输出(也用 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 Studio 2015 Community 和所有 Visual C++ 选项 检查。
  4. 安装 Strawberry 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
    

也确实验证了 win32-msvc2015 在静态构建目录的 mkspecs 目录中。我将 qt 静态目录重命名为第一个代码片段中的名称。我在谷歌上找不到太多,所以我在这里发帖希望能得到帮助。谢谢。我希望这很简单,就像我遗漏了一个目录以放入路径环境变量中...

最佳答案

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

关于c++ - QT 5.7 MSVC 2015 静态构建不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40622198/

相关文章:

c++ - 您如何决定模板方法的值(value)与引用

c++ - Qt Sqlite 仅从脚本创建一张表

c++ - 读/写 bool 值保证是 C/C++ 中的一条指令

c++ - 如何跟踪计划稍后删除的对象?

c++ - 当鼠标经过时 QLabel 改变颜色

windows - Rexx - 方括号用法

windows - 使用 Windows 命令行查看文件是否存在并重命名

c - 在线程函数中获取句柄

c++ - 添加文本到json C++

c++ - 当我按 alt-tab 键进入其中任何一个窗口时,如何将所有窗口强制置于最前面?