bash: ./program: ikili dosya çalıştırılamıyor: Exec biçim hatası

Bir programı çalıştırmaya çalışıyorum, ancak aşağıdaki gibi bir hata oluşuyor:

bash: ./program: cannot execute binary file: Exec format error

Dosya programının sonucu şöyleydi:

program: ELF-32-bit LSB executable, ARM, EABI4 version 1 (SYSV), dynamically linked(uses share libs), for GNU/LINUX 2.6.16, not stripped

Bu hatayı nasıl düzeltebilirim?

VMware ile Ubuntu 14.04.2 (amd64) kullanıyorum. Ubuntu i386 ile de denedim ama sonuç aynıydı.

ARM mimarisi için derlenmiş bir çalıştırılabilir dosyayı x86-64 mimarisi üzerinde çalıştırmaya çalışıyorsunuz, bu da sadece İngilizce bilen işlemcinizden Çince yol tarifi almasını istemeye benziyor.

Bu çalıştırılabilir dosyayı çalıştırmanız gerekiyorsa iki seçeneğiniz vardır:

  1. Yürütülebilir dosyanın x86-64 sürümünü edinin (herhangi bir yolla; yürütülebilir dosyanın x86-64 sürümünü elde edemiyorsanız ancak kaynak kodunu elde edebiliyorsanız, sanal makinede yeniden derlemeyi deneyebilirsiniz);

  2. Ubuntu 14.04.2 (amd64) yerine Ubuntu Server for ARM yükleyin. Bunun için ya ARM mimarisi üzerinde çalışan fiziksel bir makine ya da bunu taklit edebilen bir sanallaştırma yazılımı gerekir.

Yorumlar (0)

Bu durum, bir x86-64 çalıştırılabilir dosyasını 32 bit platformda çalıştırmaya çalıştığınızda da ortaya çıkabilir.

Belirli bir örnekte, Visual Studio Code'u indirdim ve Ubuntu kurulumumda çalıştırmayı denedim, ancak bu sanal makineye 32 bit Ubuntu yüklediğimi fark etmemiştim. Bu hatayı aldım, ancak 32 bit sürümü indirdikten sonra sorunsuz çalıştı.

Yorumlar (0)

Aşağıdakilerin tümü doğruysa böyle bir hata oluşabilir:

  • Çalıştırılabilir bir dosya değil, bir bağlantıdır
  • VM içinde çalıştırırsınız
  • Dosya paylaşılan klasörde bulunuyor
  • Ana bilgisayarınız Windows.

Bu dosyayı, diyelim ki arşivde aldıysanız - VM içinde, ana makinenizin sabit sürücüsüne eşlenen klasörde değil, sanal sürücü içindeki bir dizinde açmayı deneyin, örneğin /myNewDir/

Yorumlar (1)