2016-11-16 99 views
1

我在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文件或者配置是否爲我們自動處理這些問題? –

回答

2

原來的問題是我在構建之後重新命名了QT靜態編譯目錄,這打亂了它。快速修復:將其重命名爲其原始configure -prefix名稱。謝謝庫巴!