28 Mayıs 2010

Varolan dosya için "no such file or directory" hatası almak

64-bit işletim sistemi kullanmaya başlayınca bunu gördüm. Linux göz göre göre yok abi öyle bir dosya diyor. Bunun genel sebebi, 64 bitlik bir sistem üzerinde 32 bitlik bir uygalama çalıştırmaya kalktığınızda Linux'un bunu ne yapacağını bilememesi(daha düzgün bir hata mesajı da verebilirdi). Çözüm basit, ia32-libs pakedini kurmak.

Bunun daha ilginç bir örneğini de anlatayım: Az önce yaşadığım örneğini konsolumdan kopyalayıp yapıştıriyorum. 32-bitlik makineden bir c++ projesini 64-bit makineme kopyalamışım.

$ Release/jvdh-devil
Release/jvdh-devil: error while loading shared libraries: libIL.so.1: cannot open shared object file: No such file or directory

$ file /usr/lib/libIL.so.1
/usr/lib/libIL.so.1: symbolic link to `libIL.so.1.1.0'

$ file /usr/lib/libIL.so.1.1.0
/usr/lib/libIL.so.1.1.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped

E daha ne?

Sorun şuydu: kaynak kodla beraber 32bit dernelmiş .o disyalarım vardı. 32 bitlik nesne kodunu 64 bitlik kütüphaneye bağlamaya kalkınca

Hiç yorum yok:

Yorum Gönder