cht電腦資訊gcingcin Windows
adm Find login register

compiling gcin windows

eliu

joined: 2007-08-09
posted: 11480
promoted: 617
bookmarked: 187
新竹, 台灣
1subject: compiling gcin windowsPromote 1 Bookmark 02009-11-04quote  

download gcin-1.4.6.pre10.tar.bz2

在 linux 上

先記得 install p7zip
tar xvfj gcin-???.tar.bz2

mv gcin-??? gcin
cd gcin
./gen-win32     <--- 轉成 Visual Studio 可用的 source code format,其實只是加上 UTF-8 signature(BOM) 及轉換行 CR LF

output 是 ~/gcin-win32.7z

在 Windows 解壓縮到 C:\gcin-win32

IME & Visual Studio .sln .vcproj source

[   ]gcin-win32-ime-build-src.7z

解壓縮到 C:\gcin

你還需要 install GTK Win32 & regex for windows

edited: 7
guest
2subject: 看不懂?Promote 0 Bookmark 02009-09-01quote  

如題

 Windows上要怎麼弄?

eliu

joined: 2007-08-09
posted: 11480
promoted: 617
bookmarked: 187
新竹, 台灣
3subject: Promote 0 Bookmark 02009-09-01quote  
那邊不懂,提出來
winlin

joined: 2007-09-25
posted: 1859
promoted: 111
bookmarked: 33
4subject: Promote 1 Bookmark 12009-11-04quote  

感謝前一陣子eliu兄耐心解說,
小弟把過程整理下來,希望對往後想要自行編譯或幫忙debug的朋友有幫助。

步驟一:把gcin source轉成Visual Studio的format

這個步驟需要在Linux上完成,在 Linux上記得要裝p7zip這個套件。
首先下載gcin source code:
http://www.csie.nctu.edu.tw/~cp76/gcin/download/
解開gcin source code之後放到使用者家目錄下(註:一定要在使用者的家目錄下!),
把source code的目錄的名稱由gcin-???(???為gcin版本號)改為gcin(去除版本號),
並進入~/gcin這個目錄執行下列指令:
./gen-win32
成功後會得到一個「gcin-win32.7z 」,
請把它拿到windows下,解壓縮為C:\gcin-win32

 
步驟二:安裝gcin-win32-ime-build-src

下載http://cle.linux.org.tw/gcin/download/gcin-win32-ime-build-src.7z
解壓縮為C:\gcin

 
步驟三:安裝GTK Win32

下載http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.16/gtk+-bundle_2.16.6-20091013_win32.zip
如果連結已失效,可能是版本更新的關係,到下面網址找新版連結即可。
http://www.gtk.org/download-windows.html

 
步驟四:安裝 regex for windows

新增一個資料夾C:\regex
下載regex-lib-zip:
http://gnuwin32.sourceforge.net/downlinks/regex-bin-zip.php
解壓縮後放在C:\regex裡,
並把C:\regex\bin\regex2.dll複製一份放到C:\gcin\Debug


 
步驟五:安裝visual studio 2008 expression edition

下載visual studio 2008 expression edition或visual c++ 2008 expression edition
http://www.microsoft.com/express/download/
我個人是下載網頁最下面的offline install(撰寫本文時是2010 Beta2)

 
步驟六:設定visual studio的相關路徑

工具→選項→專案和方案→VC++目錄
設定好相關路徑:

 

步驟七:開始編譯

設好後開啟C:\gcin\gcin.sln,在Visual C++的工具列點「建置→建置方案(F7)」。
編好的執行檔都放在C:\gcin\Debug,
由於免費版本的visual studio不提供打包成安裝檔的功能,
所以有需要打包成安裝檔的朋友自己想辦法囉。
如果要幫忙debug,編好後請在Visual C++的工具列點「偵錯→開始偵錯(F5)」。

-------------------------------------------------------------------
好用的gcin連結:

edited: 2
coolcd
joined: 2008-01-21
posted: 2601
promoted: 348
bookmarked: 95
5subject: Promote 0 Bookmark 02010-12-24quote  

winlin

步驟二:安裝gcin-win32-ime-build-src

 

下載http://cle.linux.org.tw/gcin/download/gcin-win32-ime-build-src.7z
解壓縮為C:\gcin

現在無法下載了,還需要嗎?


步驟三:安裝GTK Win32

下載http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.16/gtk+-bundle_2.16.6-20091013_win32.zip
如果連結已失效,可能是版本更新的關係,到下面網址找新版連結即可。
http://www.gtk.org/download-windows.html

弱弱地問一下,要解壓到哪裡啊?
 

eliu

joined: 2007-08-09
posted: 11480
promoted: 617
bookmarked: 187
新竹, 台灣
6subject: Promote 0 Bookmark 02010-12-25quote  

coolcd
現在無法下載了,還需要嗎?

[   ]gcin.7z

弱弱地問一下,要解壓到哪裡啊?

好像是解壓縮到 C:\gtk

edited: 1
coolcd
joined: 2008-01-21
posted: 2601
promoted: 348
bookmarked: 95
7subject: Promote 0 Bookmark 02010-12-25quote  

========== 建置: 5 成功、9 失敗、1 最新、1 略過 ==========

Sorry,肉腳第一次 build,問題好像蠻多的,可以指點一二嗎?

edited: 1
eliu

joined: 2007-08-09
posted: 11480
promoted: 617
bookmarked: 187
新竹, 台灣
8subject: Promote 0 Bookmark 02010-12-25quote  

cd \gtk

dir /s gtk.h

確定 gtk.h 有存在嗎?

coolcd
joined: 2008-01-21
posted: 2601
promoted: 348
bookmarked: 95
9subject: Promote 0 Bookmark 02010-12-25quote  

eliu

cd \gtk

dir /s gtk.h

確定 gtk.h 有存在嗎?

有,在 C:\gtk\include\gtk-2.0\gtk,目前用 gtk+-bundle_2.16.6-20100912_win32

從 Linux 修改後傳到 Windows 的 source 是 gcin 1.5.7.pre17 (C:\gcin-win32)

還有老大你第六篇提供的 gcin.7z

edited: 1
coolcd
joined: 2008-01-21
posted: 2601
promoted: 348
bookmarked: 95
10subject: Promote 0 Bookmark 02010-12-26quote  

原本因為不熟悉,設了一些資料夾,怕是把專案搞亂了,所以把 C:\gcin 砍掉重練

現在的結果是 ========== 建置: 6 成功、9 失敗、0 最新、1 略過 ==========

eliu

joined: 2007-08-09
posted: 11480
promoted: 617
bookmarked: 187
新竹, 台灣
11subject: Promote 0 Bookmark 02010-12-26quote  

照理說應該是不用任何修改就可以 compile 的,所以先不要修改去 compile 看,不行再說

solution explorer -> gcin → 右鍵 menu properties →  configrations properties → C/C++ -> General ->  Additional Include directories 的內容應該是這樣的

..\gcin;\regex\include;\gcin-win32\im-client;\gcin-win32;%(AdditionalIncludeDirectories)

util.h 是在 \gcin-win32,所以這樣應該是沒問題的

edited: 1
coolcd
joined: 2008-01-21
posted: 2601
promoted: 348
bookmarked: 95
12subject: Promote 0 Bookmark 02010-12-27quote  

刪掉 C:\gcin、C:\gtk、C:\gcin-win32 重做後再次編譯的結果

========== 建置: 8 成功、7 失敗、0 最新、1 略過 ==========

eliu

joined: 2007-08-09
posted: 11480
promoted: 617
bookmarked: 187
新竹, 台灣
13subject: Promote 0 Bookmark 02010-12-27quote  

看起來 compiling 是過了,就是 .exe 複製到 \program files\gcin\bin 失敗,可能是沒有用真正的 administrator 執行?把UAC 關掉再試一次。

cd \gcin
dir /s gcin.exe

看 gcin.exe 有沒有產生。

edited: 1
coolcd
joined: 2008-01-21
posted: 2601
promoted: 348
bookmarked: 95
14subject: Promote 0 Bookmark 02010-12-27quote  

eliu

看起來 compiling 是過了,就是 .exe 複製到 \program files\gcin\bin 失敗,可能是沒有用真正的 administrator 執行?把UAC 關掉再試一次。

cd \gcin
dir /s gcin.exe

看 gcin.exe 有沒有產生。

gcin.exe 有產生,

改用 administrator 跑 MS Visual C++ 2010 Express

但 copy 到 C:\program files\gcin\ 仍然失敗

我的 C:\program files\ 沒有 gcin 資料夾

另外,64bit 的系統好像應該把 32bit 程式安裝到 C:\Program Files (x86)

如果有成功編出來,是不是只要 copy 取代目前系統的 gcin.exe 就可以 debug 了?

不知道需要複製哪些檔案?

edited: 1
eliu

joined: 2007-08-09
posted: 11480
promoted: 617
bookmarked: 187
新竹, 台灣
15subject: Promote 0 Bookmark 02010-12-27quote  

coolcd
如果有成功編出來,是不是只要 copy 取代目前系統的 gcin.exe 就可以 debug 了?

對的,只要 gcin.exe 取代原有的 就可以 debug 了。要 compile Debug version,不是 Release

當發現 gcin.exe 有卡住的情形,執行 VC express → Debug → Attach to process → 選擇 prcoess gcin.exe

就可以看到 stack trace 在哪裡卡住

eliu

joined: 2007-08-09
posted: 11480
promoted: 617
bookmarked: 187
新竹, 台灣
16subject: Promote 0 Bookmark 02010-12-27quote  

Visual C++ 2010 內定是沒有 Attach to Process 在 menu 的,需要底下的來開啟

Tools → Settings → Expert Settings

 工具→設定→專家設定

eliu

joined: 2007-08-09
posted: 11480
promoted: 617
bookmarked: 187
新竹, 台灣
17subject: Promote 0 Bookmark 02010-12-29quote  

Attach 後,Visual C++ 切記要 ctrl-space 切到英數,否則可能造成當機。

1. Debug -> Break All 全部中斷 -> 右下角的 window -> Call Stack  呼叫堆疊-> Ctrl-A -> ctrl-C -> ctrl-V 貼到 firefox


內容看起來應該像

     ntdll.dll!7c92e514()    
     [Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]   
     ntdll.dll!7c92df4a()    
     kernel32.dll!7c809590()    
     user32.dll!77d195f9()    
     msvcrt.dll!77bfc2e3()    
     libgdk-win32-2.0-0.dll!6c374c58()    
     libglib-2.0-0.dll!685e4e52()    
     libgtk-win32-2.0-0.dll!6186667e()    
>    gcin.exe!main(int argc, char * * argv)  Line 640    C++
     gcin.exe!__tmainCRTStartup()  Line 278 + 0x12 bytes    C
     kernel32.dll!7c817077()   

 

最好 Continue(繼續) 再重覆上面 1. 的步驟數次,看內容是否有改變。

edited: 1
coolcd
joined: 2008-01-21
posted: 2601
promoted: 348
bookmarked: 95
18subject: Promote 0 Bookmark 02010-12-30quote  

finally, I got it.

     libglib-2.0-0.dll!685e00c9()    
     [下面的框架可能錯誤及/或遺失,未載入 libglib-2.0-0.dll 的符號]   
     libglib-2.0-0.dll!686208c0()    
     libglib-2.0-0.dll!685edc79()    
     msvcrt.dll!74fca53a()    
     msvcrt.dll!74fcadf9()    
     msvcrt.dll!74fcc470()    
     libglib-2.0-0.dll!685e9d72()    
     libgtk-win32-2.0-0.dll!618625dc()    
>    gcin.exe!main(int argc, char * * argv)  行 640    C++
     gcin.exe!__tmainCRTStartup()  行 278 + 0x12 位元組    C
     kernel32.dll!75743677()    
     ntdll.dll!77299d42()    
     ntdll.dll!77299d15()    

eliu

joined: 2007-08-09
posted: 11480
promoted: 617
bookmarked: 187
新竹, 台灣
19subject: Promote 0 Bookmark 02010-12-30quote  

這樣看起來是 gtk win32 的 bug,不知道用最新的 gtk 會不會改善

edited: 1
eliu

joined: 2007-08-09
posted: 11480
promoted: 617
bookmarked: 187
新竹, 台灣
20subject: Promote 0 Bookmark 02011-01-04quote  

eliu
這樣看起來是 gtk win32 的 bug,不知道用最新的 gtk 會不會改善

gtk win32 20101227 會導致詞音的輸入視窗無法開啟,gtab 就可以

cht電腦資訊gcingcin Windows
adm Find login register
views:64641