| |||||||
adm | Find | login register |
我使用 archlinux,以下列方式產生 gcin
cd $startdir/src/$pkgname-$pkgver 發現 必須先 cd /usr/lib/gcin 才能執行 gcin 不然會找不到 gcin 的 library. | |||||||||||||
The error message is: gcin: error while loading shared libraries: gcin1.so: cannot open shared object file: No such file or directory
it works on linux 32 system. But can not work on linux 64 bit I think this is caused by configure file or loading lib algorithm. Or, do you know what *.c file is related to this problem?
I've already contact the archlinux's package maintainer, but as you see, there is nothing special configure as my previous post. | |||||||||||||
會不會 /usr/lib /usr/lib64 的問題
| |||||||||||||
不是這樣的, archlinux 64 bit 上只有一個 /usr/lib 目錄. | |||||||||||||
看一下 可能 LD_RUN_PATH 有錯 ?
$ldd /usr/local/bin/gcin | |||||||||||||
ldd `which gcin` 請問這要怎麼設呢? 要怎麼讓package maintainer可以包裝好呢? | |||||||||||||
gcin1.so 的 path 是由 LD_RUN_PATH 指定 如果弄不出來,可以考慮不要拆成 .so Makefile
gcin: $(OBJS) $(IMdkitLIB) $(im-srv) | |||||||||||||
我想應該是這一行的指定在 configure 時沒效. libdir=$startdir/pkg/usr/lib 我看到 config.mak 裏面 libdir=$(DESTDIR)/usr/lib64 但還是不知道改怎麼修正.(難道是要 report 給 autoconf 作者?) | |||||||||||||
gcin 是用手工打造的 script 與 autoconf 無關 | |||||||||||||
難道不是 ./configure 產生的 libdir=$(DESTDIR)/usr/lib64 嗎? | |||||||||||||
我找到問題, 但是, 這需要 gcin 作者修改. 測過 1.4.1 仍有此問題. 即 - 參考 http://bugs.archlinux.org/task/7225 在 configure 過後, 手工修改 config.mak
libdir=$(DESTDIR)/usr/lib64 libdir=$(DESTDIR)/usr/lib
主要原因是作者假設 arch 64 系統依定會有 /usr/lib64 目錄, 但是 ArchLinux x86_64 底下, 標榜只放純 64 bit 程式, 所以沒有那個目錄. 只有 /usr/lib, 另外, 要額外裝才有 /usr/lib32 | |||||||||||||
這應該是 gcin 作者要調整的, autoconf 就是要能夠適應各種環境. 因為設定的好, confingure 就應該能引用 /usr/lib/gcin, 而非 /usr/lib64/gcin 才對. | |||||||||||||
不好意思. 我手動下 ./configure 時出現
testing if you have QT_IM_MODULE dir:/usr/lib/qt4/plugins/lib64/inputmethods support 請問這是不是我少裝什麼呢? 還是並不一定需要. 我有裝 qt4. 我大概知道問題出在那 configure script
LIB='lib' 因為 archlinux 也有 /lib64 目的是為了一些 binary distribution package 用. 所以 LIB=lib64 而最後 libdir=$(DESTDIR)/usr/local/lib64 並非 archlinux 想要用的 libdir=$(DESTDIR)/usr/local/lib 我再去找 archlinux package maintainer 問問看... 謝啦!
| |||||||||||||
舉例說明 在 openSUSE qt3 inputmethods 目錄在 /usr/lib64/qt3/plugins/inputmethods 而非像 mandrava 在 /usr/lib/qt3/plugins/lib64/inputmethods 所以就自己改以符合發行版本的特性就好了
--- configure.orig 2007-07-10 11:22:51.000000000 +0800 | |||||||||||||
把 configure 以下的判斷式註解起來就行了:
#if [ -d /lib64 ]; then |
| |||||||
adm | Find | login register |