Tuesday, July 7, 2015

Build Qt 5 in N Hours



前置準備

  • git
  • ActivePerl 5.16
  • Python 2.7
  • Ruby 1.9
  • OpenSSL
  • Bison
  • Flex
  • iconv
  • gperf

※確定以上執行檔的位置皆在 PATH 變數下
※只有粗體字的要自己安裝,後面四個公用程式在 Qt5 clone 下來的資料夾 gnuwin32\bin 內有,直接將這個資料夾新增到 PATH 即可

  • ICU    qtwebkit 處理 unicode 官方只提供 2010 的 prebuilt 其他版本要自己先下載原始碼用對應版本的 VS 編譯 (記得檢查專案設定是否 BUILD TARGET版本正確)
  • 環境變數新增:
    • INCLUDE:  Path/To/ICU/Include;Path/To/OpenSSL/Include
    • LIB: Path/To/ICU/Lib;Path/To/OpenSSL/Lib;Path/To/OpenSSL/Lib/VC
    • PATH: Path/To/ICU/Bin;上述公用程式的執行位置

      LIB請確定是正確的 VS 版本的 LIB 和正確的平台(32/64)

※底下指令部分皆為 CMD 的指令


下載原始碼

開啟 Visual Studio Native命令提示字元 (開2013 x64 就會 BUILD 出對應版本)

git clone  git://gitorious.org/qt/qt5.git
perl init-repository

會下載一陣子



編譯

  • Windows

configure -debug-and-release -c++11 -nomake tests -opensource -confirm-license -openssl -platform win32-msvc2010 -opengl desktop
nmake
nmake install

也可以用 jom 平行編譯
  • Mac

configure -c++11 -nomake tests -opensource -confirm-license -openssl -platform macx-clang-32
make
make install

之後 qtbase 資料夾內就是 build 好的 SDK

  • configure參數說明:
    • -platform 後面為 mkspec 資料夾內支援的平台 使用 VS2013 則將2010改為2013
    • -opengl desktop 使用 OPENGL 做 Qt GUI 的繪製,不加上則會使用libANGLE 在 WINDOWS上會用 DIRECTX 繪製
    • 可以加上 -nomake examples -nomake demos 節省一點時間

清除

git submodule foreach --recursive "git clean -dfx"

部署

  • 基本的
  • Qt5Widgets.dll       Qt 核心模組  
  • Qt5Core.dll            Qt 核心模組
  • Qt5Gui.dll              Qt Gui模組
  • platforms/qwindow.dll   (一定要放在platforms內  Qt5將平台拆開 )
  • icudtXX.dll
  • icuinXX.dll
  • icuucXX.dll            這三個是 ICU 的 DLL   XX為版本

  • 使用 LIBANGLE 需要的 DLL ( DIRECTX )
  • libEGL.dll                              LIBANGLE 的 DLL (必備)
  • libGLESv2.dll                        LIBANGLE 的 DLL (必備)
  • D3DCompiler_XX.dll             如果安裝 DX RUNTIME 應該系統會有

  • MSVC 相關的 DLL    XXX為版本
    (用 VISUAL STUDIO 編譯的 可以直接裝 C++ RUNTIME 就不需要特別包這個 )
  • msvcpXXX.dll
  • msvcrXXX.dll

以下部分要針對專案是否用到 Qt 官方外掛 $(QTSDK)/plugins 資料夾內相關內容須複製到 AP 同一層,不枚舉了。

  • 有使用 Jpg Gif ...等 imageformats 底下支援的格式
    imageformats/*.dll   ( Qt圖片的 Plugin )
  • SQL Drivers
    sqldrivers/*.dll

0 意見: