cht電腦資訊gcin
adm Find login register

檔案位置問題

swyear
1 檔案位置問題
Promote 0 Bookmark 02011-05-28quote  

在 OBS 上編譯新版 gcin

最後出現這些錯誤訊息

這些 .so 模組可以變更安裝的位置嗎?

謝謝

gcin.i586: W: binary-or-shlib-calls-gethostbyname /usr/bin/gcin
The binary calls gethostbyname(). Please port the code to use getaddrinfo().

gcin-anthy-module.i586: E: arch-dependent-file-in-usr-share (Badness: 590) /usr/share/gcin/table/anthy-module.so
gcin.i586: E: arch-dependent-file-in-usr-share (Badness: 590) /usr/share/gcin/table/chewing-module.so
This package installs an ELF binary in the /usr/share  hierarchy, which is
reserved for architecture-independent files.

eliu
2
Promote 0 Bookmark 02011-05-28quote  
swyear
3
Promote 0 Bookmark 02011-05-28quote  

GCIN_MODULE+=anthy-module.so

加上

GCIN_MODULE+=chewing-module.so

等於

anthy-module.sochewing-module.so

好像會讓兩個都要編譯時時都不能編譯

還是現在仍有不能同時編譯的限制?

謝謝版主,麻煩您了

eliu
4
Promote 0 Bookmark 02011-05-28quote  

確定可以兩個都 compile,我用 gmake 3.81

少了 install 的部份

    $(MAKE) -C modules install

在 pre13 中修正


edited: 3
swyear
5
Promote 0 Bookmark 02011-05-28quote  

謝謝,我再試試看

swyear
6
Promote 0 Bookmark 02011-05-29quote  

謝謝老大,已經編譯出來了

最後一個問題請教

anthy-module.so 和 chewing-module.so 是不是 32位元only的程式?

要加什麼參數編譯或做什麼處理才能支援64位元系統

還是只能依現狀加裝32bit的 libanthy 和 libchewing?

謝謝

eliu
7
Promote 0 Bookmark 02011-05-29quote  

在 x64 linux gcc 內定應該是 compile 成 64-bit。在 32-bit linux 可能可以 -m64 compile 64-bit,可能還要 install 64-bit library,沒試過。

caleb
8
Promote 0 Bookmark 02011-05-29quote  

swyear
anthy-module.so 和 chewing-module.so 是不是 32位元only的程式?

要加什麼參數編譯或做什麼處理才能支援64位元系統

還是只能依現狀加裝32bit的 libanthy 和 libchewing?

應該是因為沒有 make clean 導致安裝到 tarball prebuild 的 so binary。

請參考 http://hyperrate.com/thread.php?tid=23838

swyear
9
Promote 0 Bookmark 02011-05-29quote  

caleb

 

應該是因為沒有 make clean 導致安裝到 tarball prebuild 的 so binary。

請參考 http://hyperrate.com/thread.php?tid=23838

謝謝您的建議,patch 可以套用,但是編譯出來仍是 32位元的

(我是看最後rpm自動檢查Requires和Provides

如果是64位元應該要 Requires: libchewing.so.3()(64-bit)

而非 libchewing.so.3)

試著先將 modules/*.so 刪除,編譯會停在

if [ Y = 'Y' ]; then gmake -C modules; fi
gmake[1]: Entering directory `/usr/src/packages/BUILD/gcin-1.6.4.pre13/modules'
gcc -shared -o anthy-module.so anthy.pico -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lm -lcairo -lpng14 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0   -lX11 -ldl -lanthy
/usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../x86_64-suse-linux/bin/ld: i386 architecture of input file `anthy.pico' is incompatible with i386:x86-64 output
anthy.pico: In function `module_flush_input':
/home/dhliu/gcin/modules/anthy.cpp:807: undefined reference to `hide_selections_win'
anthy.pico: In function `module_feedkey':
/home/dhliu/gcin/modules/anthy.cpp:861: undefined reference to `current_time'
anthy.pico: In function `module_init_win':
/home/dhliu/gcin/modules/anthy.cpp:1147: undefined reference to `__gcin_dbg_'
anthy.pico: In function `module_change_font_size':
/home/dhliu/gcin/modules/anthy.cpp:1246: undefined reference to `__gcin_dbg_'
/home/dhliu/gcin/modules/anthy.cpp:1255: undefined reference to `set_label_font_size'
anthy.pico: In function `module_feedkey_release':
/home/dhliu/gcin/modules/anthy.cpp:1298: undefined reference to `current_time'
collect2: ld returned 1 exit status
gmake[1]: *** [anthy-module.so] Error 1
gmake[1]: Leaving directory `/usr/src/packages/BUILD/gcin-1.6.4.pre13/modules'
make: *** [all] Error 2
error: Bad exit status from /var/tmp/rpm-tmp.9aRzTA (%build)

請大家幫忙看看

謝謝

eliu
10
Promote 0 Bookmark 02011-05-29quote  

swyear

/usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../x86_64-suse-linux/bin/ld: i386 architecture of input file `anthy.pico' is incompatible with i386:x86-64 output

anthy.pico 有沒有刪除?

swyear
11
Promote 0 Bookmark 02011-05-30quote  

eliu

 

anthy.pico 有沒有刪除?

謝謝

刪除 modules/*.pico 後可以編譯了

但是在 firefox 使用時必當...

不知道有沒有人有較好的使用經驗分享

eliu
12
Promote 0 Bookmark 02011-05-30quote  

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