कैसे हल करें: -बेश:: बाइनरी फ़ाइल निष्पादित नहीं कर सकता


18

मेरे पास b1 नाम की एक फाइल है जिसमें असेंबली लैंग्वेज है। मैं OSX का उपयोग करके फ़ाइल को निष्पादित करने की कोशिश कर रहा हूं

$ ./b1

मुझे निम्नलिखित त्रुटि मिलती है:

-bash: ./b1: cannot execute binary file

मैंने अन्य समान प्रश्नों को देखा है, लेकिन कोई फायदा नहीं हुआ। मैं निश्चित रूप से 64 बिट आर्किटेक्चर का उपयोग कर रहा हूं।

यहाँ प्रासंगिक जानकारी का उत्पादन कर रहे हैं:

$ file b1
b1: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped
$ uname -a
Darwin Anthonys-MacBook-Pro.local 13.0.0 Darwin Kernel Version 13.0.0: Thu Sep 19 22:22:27 PDT 2013; root:xnu-2422.1.72~6/RELEASE_X86_64 x86_64

संपादित करें:

रण as b1जो समाप्त हो गया साथ: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/as: fatal error in /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../libexec/as/x86_64/as

जवाबों:


25

क्षमा करें, यह फ़ाइल GNU / Linux के लिए है

आपके fileआउटपुट के अनुसार , यह प्रोग्राम GNU / Linux के लिए है। मुझे यह पता है क्योंकि:

  1. फ़ाइल b1में है ELF(एक्स्टेंसिबल और संपर्क योग्य स्वरूप) है, जबकि मैक ओएस एक्स का उपयोग करता है, प्रारूप Mach-Obinaries के लिए प्रारूप;
  2. fileपहचानता है कि यह फ़ाइल GNU/Linux 2.6.18सबसे आधुनिक लिनक्स वितरण पर काम करेगी।

अपनी समस्या को हल करने के लिए, आपको या तो लिनक्स वितरण के भीतर इस समस्या को चलाना होगा, प्रोग्राम को फिर से शुरू करना होगा, या इस प्रोग्राम का मैक ओएस एक्स संस्करण प्राप्त करना होगा।

तो ... क्यों XYZ OS या CPU b1पर काम नहीं करता है ?

जिस तरह लोग अलग-अलग भाषा बोलते हैं, उसी तरह अलग-अलग कंप्यूटर अलग-अलग निर्देशों को समझते हैं। उदाहरण के लिए, आपका मैक एक इंटेल प्रोसेसर का उपयोग करता है, जबकि आपका एंड्रॉइड फोन एआरएम प्रोसेसर का उपयोग करता है। इन दोनों प्रोसेसर की तुलना अंग्रेजी और फ्रेंच से करें। वे एक ही भाषा परिवार से संबंधित हो सकते हैं, लेकिन फिर भी, आप एक ही समय में दोनों नहीं बोल सकते। इससे निष्कर्ष निकलता है:

विभिन्न भाषाओं में डिसिमिलर कंप्यूटर "बात" करते हैं।

अलग-अलग ऑपरेटिंग सिस्टम (जैसे विंडोज, मैक ओएस एक्स और लिनक्स) एक ही बायनेरिज़ का उपयोग क्यों नहीं कर सकते, इस पर विचार करें:

हार्डवेयर के लिए सॉफ्टवेयर अलग से क्या बनाता है? बहुत ज्यादा नहीं।

दोनों एक प्रणाली और एक "भाषा" प्रदान करते हैं जो कंप्यूटर के अधिक जटिल घटकों को अंतिम उपयोगकर्ता के लिए कार्यों को पूरा करने की अनुमति देता है। दोनों को काम करने के लिए एक सहमति भाषा की आवश्यकता होती है। सोचिए अगर किसी चिल्लाते हुए मैच में 10 लोग थे, तो हर कोई एक अलग भाषा बोल रहा था। यही कारण है कि अलग-अलग ओएस सॉफ्टवेयर को अलग-अलग बायनेरिज़ की आवश्यकता होती है, भले ही दोनों ऑपरेटिंग सिस्टम एक ही प्रोसेसर का उपयोग करें।


नमस्ते, मुझे मैक ओएस 10.9 में योगिनी फ़ाइल संकलित करने के लिए इसी तरह की समस्या है। क्या आप मुझे बता सकते हैं कि इस ऑनमैक को कैसे चलाना है
AllIsWell

AllsWell आप इस के लिए एक रास्ता मिल गया !?
नियोकॉर्टेक्स

1

सभा की भाषा? आपको इसे संकलित करने, या इसे इकट्ठा करने की आवश्यकता है।

man as

2
प्रश्नकर्ता ने असेंबली भाषा और मशीन कोड को जब्त कर लिया है । fileप्रश्न में आउटपुट देखें ।
JDBP
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.