2012年12月27日 星期四

Introducing Qt 5.0 - Digia Plc

Introducing Qt 5.0 - Digia Plc

2012年9月28日 星期五

手動編譯QT於windows 7

此記錄分別說明QT在 Windows 7上編譯的方法,分別以MinGW、VS2008 x86、VS2008 x64 為主題說明。
1.首先下載QT source 4.8.2 因官方被Digia買走於(2012/9/18),網上FTP已不提供4.8.2版Source,但我因已經編譯成功的為4.8.2版,故設另一個下載點供下載。下載地址
2.將壓縮檔內資料夾qt-everywhere-opensource-src-4.8.2解壓縮到自己決定的位置,我的路徑為E:\Project\workspace\ 3.修正WebKit 程式碼無法編譯問題,此問題顯示如下。
DefaultLocalizationStrategy.cpp
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\yvals.h(21) : warning C4005: '_HAS_TR1' : macro redefinition command-line arguments :  see previous definition of '_HAS_TR1' platform\DefaultLocalizationStrategy.cpp(327) : error C2001: newline in constant

platform\DefaultLocalizationStrategy.cpp(327) : fatal error C1057: unexpected end of file in macro expansion
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 10.0
\VC\BIN\cl.EXE"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 10.0
\VC\BIN\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
2.1 修正檔案為DefaultLocalizationStrategy.cpp第327行
String DefaultLocalizationStrategy::contextMenuItemTagLookUpInDictionary(const String& selectedString)
{
#if defined(BUILDING_ON_LEOPARD) || defined(BUILDING_ON_SNOW_LEOPARD)
    UNUSED_PARAM(selectedString);
    return WEB_UI_STRING("Look Up in Dictionary", "Look Up in Dictionary context menu item");
#else
#if USE(CF)
    RetainPtr<cfstringref> selectedCFString(AdoptCF, truncatedStringForLookupMenuItem(selectedString).createCFString());
    return formatLocalizedString(WEB_UI_STRING("Look Up  “%@”", "Look Up context menu item with selected word"), selectedCFString.get());
#else
    return WEB_UI_STRING("Look Up “<selection>”", "Look Up context menu item with selected word").replace("<selection>", truncatedStringForLookupMenuItem(selectedString));
#endif
#endif
}

改成
String DefaultLocalizationStrategy::contextMenuItemTagLookUpInDictionary(const String& selectedString)
{
#if defined(BUILDING_ON_LEOPARD) || defined(BUILDING_ON_SNOW_LEOPARD)
    UNUSED_PARAM(selectedString);
    return WEB_UI_STRING("Look Up in Dictionary", "Look Up in Dictionary context menu item");
#else
#if USE(CF)
    RetainPtr<cfstringref> selectedCFString(AdoptCF, truncatedStringForLookupMenuItem(selectedString).createCFString());
    return formatLocalizedString(WEB_UI_STRING("Look Up “%@”", "Look Up context menu item with selected word"), selectedCFString.get());
#else
    return WEB_UI_STRING("Look Up \"<selection>\"", "Look Up context menu item with selected word").replace("<selection>", truncatedStringForLookupMenuItem(selectedString));
#endif
#endif
}

MinGW 編譯
1.安裝MinGW參考此頁
2.建立qt_4.8.2資料夾到自己決定的位置,我的路徑為E:\Project\workspace\
3.建立MinGW資料夾到qt_4.8.2資料夾中
4.下載MinGW.bat到qt_4.8.2資料夾中
5.在系統內容,環境變數中加入C:\MinGW\bin;E:\Project\workspace\qt-everywhere-opensource-src-4.8.2;
6.開啟命令提示字元
7.輸入e: 執行
8.輸入cd Project\workspace\qt-everywhere-opensource-src-4.8.2 執行
9.輸入..\qt_4.8.2\MinGW.bat
10.輸入o(open source)
11.輸入y(yes),等待Makefile建立完成
12.輸入make
13.輸入make install

VS2008 x86 編譯
1.安裝VS2008,此部份略過
2.建立qt_4.8.2資料夾到自己決定的位置,我的路徑為E:\Project\workspace\
3.建立VS2008_x86資料夾到qt_4.8.2資料夾中
4.下載VS2008_x86.bat到qt_4.8.2資料夾中
5.在系統內容,環境變數中加入C:\MinGW\bin;E:\Project\workspace\qt-everywhere-opensource-src-4.8.2;
6.開啟Visual Studio 2008命令提示字元
7.輸入e: 執行
8.輸入cd Project\workspace\qt-everywhere-opensource-src-4.8.2 執行
9.輸入..\qt_4.8.2\VS2008_x86.bat
10.輸入o(open source)
11.輸入y(yes),等待Makefile建立完成
12.輸入nmake
13.輸入nmake install

VS2008 x64 編譯
1.安裝VS2008,此部份略過
2.建立qt_4.8.2資料夾到自己決定的位置,我的路徑為E:\Project\workspace\
3.建立VS2008_x64資料夾到qt_4.8.2資料夾中
4.下載VS2008_x64.bat到qt_4.8.2資料夾中
5.在系統內容,環境變數中加入C:\MinGW\bin;E:\Project\workspace\qt-everywhere-opensource-src-4.8.2;
6.開啟Visual Studio 2008 x64 Win64命令提示字元
7.輸入e: 執行
8.輸入cd Project\workspace\qt-everywhere-opensource-src-4.8.2 執行
9.輸入..\qt_4.8.2\VS2008_x64.bat
10.輸入o(open source)
11.輸入y(yes),等待Makefile建立完成
12.輸入nmake
13.輸入nmake install

PS:1.以上路徑設定請依喜好修改BAT檔內路徑以及輸出路徑,本日誌主要以架設[多種編譯檔案]為架構撰寫。
2.輸出路徑參數為[-prefix 輸出路徑]
3.如果想加速VS2008編譯在E:\Project\workspace\qt-everywhere-opensource-src-4.8.2\mkspecs\win32-msvc2008\qmake.conf 中的
QMAKE_CFLAGS            = -nologo -Zm200 -Zc:wchar_t-
後面加入
QMAKE_CFLAGS            = -nologo -Zm200 -Zc:wchar_t- -MP
以上部份轉載於
1.VC和MinGW编译Qt的方法
2.编译qt-win-opensource-4.8.2-vs2010中出现的一个bug
3.win7系统下64位Qt的编译
4.QT编译./configure参数的详细解释[新手充电必读]
5.使用 Visual C++ 2010 建置 Qt 4.6.3 6.[提问]Qt4.8.1编译安装最后出现问题

2012年7月30日 星期一

在windows 7 下編譯 emacs

1.下載Mingw32
2.下載GnuWin32
3.下載emacs source
4.下載xpm source
5.下載 gnutls
6.安裝Mingw32(請連上網路)
  執行mingw-get-inst-20120426.exe,照以下圖示安裝






















6.安裝GnuWin32(請連上網路)
  執行http://sourceforge.net/projects/getgnuwin32/files/latest/download?source=files,照以下圖示安裝











執行download.bat














執行install.bat












按Enter繼續











按Enter繼續










按Enter繼續











7.設定MinGW 環境變數,加入C:\GetGnuWin32\gnuwin32\bin;C:\MinGW;
 


















8.從C:\GetGnuWin32\packages中搜尋giflib-4.1.4-1-lib.zip、jpeg-6b-4-lib.zip、libpng-1.2.37-lib.zip、tiff-3.8.2-1-lib.zip、xpm-3.5.1-1-lib.zip、zlib-1.2.3-lib.zip,並下載gnutls-3.0.21-w32.zip,把以上檔案建資料夾放入,如D:\Project\workspace\emacs-lib,如下圖。


9.選擇emacs-lib內所有壓縮檔,用winrar解壓縮至此
10.將xpm Source 中的simx.h放入emacs-lib\include\X11
11.到emacs source資料夾下的nt 資料夾,開啟命令提示字元。
12.執行 configure.bat --with-gcc --prefix=d:/emacs --cflags -ID:/Project/workspace/emacs-lib/include   --cflags -LD:/Project/workspace/emacs-lib/lib
13.執行 dos2unix makefile
14.執行 make bootstrap
15.執行 make info
16.執行 make install
17.在D:/emacs/ 編譯出執行檔
PS:1.第8項檔名僅供參考。
         2.用VS2008編譯,編譯失敗,目前無解。