cht電腦資訊gcin
adm Find login register

[教學] 編譯 deb

caleb
1 [教學] 編譯 deb
Promote 2 Bookmark 02011-05-22quote  

1. 下載附件的 gen-deb

2. 安裝 build-essential 和 fakeroot

3. 解開 gcin source 後在 gcin 目錄下執行 sh gen-deb

4. 依據螢幕顯示安裝缺少的 -dev 套件

5. 如果沒有缺少的 -dev 套件, 會自動編譯生成 deb

6. 相容於 gtk3 / qt3 / qt4 / anthy / chewing / gcin-dev, 可用 gdebi 自動安裝升級新編譯出來的 deb(會自動處理相依關係)。若是手動用 dpkg 安裝,建議先把舊的 gcin-dev / gcin-qt3-immodule / gcin-qt4-immodule 等等全刪掉再裝。

edited: 1
eliu
2
Promote 0 Bookmark 02011-05-22quote  
getaone
3
Promote 0 Bookmark 02011-05-23quote  

cable大你好:

我是使用ubuntu 11.04 64位元的使用者

使用了您的gen-deb後

讓它自動編譯

最後出現這些錯誤

請問該怎麼解決呢?

make[3]: Leaving directory `/home/getaone/gcin-1.6.4.pre9/po/zh_CN'
make[2]: Leaving directory `/home/getaone/gcin-1.6.4.pre9/po'
if [ N = 'Y' ]; then make -C gtk3-im; fi
if [ Y = 'Y' ]; then make -C qt-im; fi
make[2]: Entering directory `/home/getaone/gcin-1.6.4.pre9/qt-im'
/usr/share/qt3/bin/moc qgcininputcontextplugin.h -o qgcininputcontextplugin.h_moc.cpp
make[2]: /usr/share/qt3/bin/moc: Command not found
make[2]: *** [qgcininputcontextplugin.o] Error 127
make[2]: Leaving directory `/home/getaone/gcin-1.6.4.pre9/qt-im'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/getaone/gcin-1.6.4.pre9'
dh_auto_build: make -j1 returned exit code 2
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2
 
感謝大大的回覆
caleb
4
Promote 0 Bookmark 02011-05-23quote  

安裝 libqt3-mt-dev

如果不想編譯 qt3 immodule 可以修改 debian/rules 把 --use_qt3=Y 改成 --use_qt3=N

如果是 qt4 immodule 要安裝 libqt4-dev

getaone
5
Promote 0 Bookmark 02011-05-23quote  

感謝cable大

真的沒裝libqt3-dev

目前都編好了測試使用中

hansioux
6
Promote 0 Bookmark 02011-05-23quote  

getaone

 

讓它自動編譯

最後出現這些錯誤

請問該怎麼解決呢?


make[2]: /usr/share/qt3/bin/moc: Command not found


如果還是想編有時就算裝 libqt3-mt-dev 和 libqt4-dev 還是會說找不到 moc ,那是因為 moc 被放到不同路徑下面去了。

以我的例子而言,之前在編 1.6.4.pre7 的時候,原本 gcin 認為 qt4 的 moc 會在 /usr/lib/qt4/bin/moc ,但是我的卻在 /usr/bin/moc-qt4

我用的是直接創連結把它連在一起.... 如下面:

sudo mkdir /usr/lib/qt4/bin/ && sudo ln -s /usr/bin/moc-qt4 /usr/lib/qt4/bin/moc

剛剛看了上面 script 的內容,原來已經把 /usr/share/ 換成 /usr/lib/ 了。不過以後想編出 qt 可用的 deb ,再出現找不到路徑也可用類似的手法解掉就好了


edited: 1
本人已不在此站活動
7
Promote 0 Bookmark 02011-05-24quote  

hansioux
我用的是直接創連結把它連在一起.... 如下面:


sudo mkdir /usr/lib/qt4/bin/ && sudo ln -s /usr/bin/moc-qt4 /usr/lib/qt4/bin/moc

剛剛看了上面 script 的內容,原來已經把 /usr/share/ 換成 /usr/lib/ 了。
不過以後想編出 qt 可用的 deb ,再出現找不到路徑也可用類似的手法解掉就好了


能不能拜託你不要提供這種錯誤解給新手好嗎?人家已經提供了 script,該修改的是 build script,
而不是錯誤的去更動系統的設定或結構。很多人的系統爛掉就是這樣隨意的更改系統設定及結構
而造成的!

hansioux
8
Promote 0 Bookmark 02011-05-24quote  

改 build script 當然是最好的,不過用 softlink 連結這種解法在 linux 裡還滿常見的吧。好比 nVidia 裝 CUDA 的時候也是直接叫用戶做 softlink 連 libGL.so。至少這個例子我看不出有什麼會讓系統爛掉的地方。

本人已不在此站活動
9
Promote 0 Bookmark 02011-05-25quote  

hansioux
改 build script 當然是最好的,不過用 softlink 連結這種解法在 linux 裡還滿常見的吧。好比 nVidia 裝 CUDA 的時候也是直接叫用戶做 softlink 連 libGL.so。至少這個例子我看不出有什麼會讓系統爛掉的地方。

別人當小偷沒被抓到,所以也可以鼓勵別人去當小偷嗎?這樣比喻雖然有點偏激,
但意義是一樣的,那是最後沒有辦法下的辦法,而不是常法,和我們現在討論的情況不同。
只有單一的改系統設定及結構當然不會爛掉,但有了這個壞習慣,就一定會累積數量眾多的後果。

一個系統雖然是一個人在用,但本身還是要有管理的認識,是因為系統使然。
你沒碰過系統爛掉,那表示還需要多多加油,你碰到的情形還不夠多!拜託你不
要這樣硬凹好嗎?你不會是故意來找楂的吧?!nVidia?真是雞同鴨講!@@

如果還要繼續,請另立 thread 好嗎?

edited: 3

cht電腦資訊gcin
adm Find login register
views:20419