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


37

मैं ubuntu 11.10 32 बिट में एक फोरट्रान संकलित कोड को निष्पादित नहीं कर सका।

त्रुटि संदेश है

bash: ./filename : Cannot execute binary file.

मैंने gcc और gfortran पुस्तकालयों को भी स्थापित किया है।

क्या कोई मदद कर सकता है?

$ file um
um: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped 

6
कृपया file filenameपरिणाम लिखें और रिपोर्ट करें।
जनवरी

फ़ाइल नाम um.exe है और परिणाम बैश है: ./um पर अमल नहीं कर सकते बाइनरी फ़ाइल
user87654

2
यह मूल लिनक्स प्रोग्राम की तरह नहीं दिखता है। वाइन का उपयोग करके देखें।
लेकेनस्टाइन

यह निष्पादन योग्य एक मेक फ़ाइल का उपयोग करके संकलित किया गया है जो फोरट्रान कोड के एक सेट को संकलित करता है। यह exe फेडोरा मशीन में बनाया गया है
user87654

1
कृपया टाइप करें file um.exeया file um(जो भी आपकी बाइनरी फ़ाइल का नाम है)। हालाँकि, संभवत: उत्पन्न बायनेरिज़ एक कारण या अन्य विंडोज बायनेरिज़ के लिए हैं। इसके अलावा, यदि कार्यक्रम सार्वजनिक है, तो आप स्रोतों से लिंक पोस्ट कर सकते हैं। या बस यहां मेकफाइल पोस्ट करें।
जनवरी

जवाबों:


38

जैसा file umकि आप एक टिप्पणी में पोस्ट किए गए आउटपुट से देख सकते हैं , आपका बाइनरी 64-बिट बाइनरी है।

32 बिट सिस्टम 64 बिट बायनेरिज़ को नहीं चला सकता है, यह केवल दूसरे तरीके से काम करता है।


3
यह इस समस्या के लिए मैंने देखा सबसे सामान्य कारण है, इसका उपयोग करने से fileइसकी पहचान जल्दी हो जाएगी।
mikebabcock

तो इसका कोई हल नहीं है?
जॉनमेर्लिनो

@JohnMerlino या तो हार्डवेयर को सही निर्देश सेट और एक OS प्रदान करता है जो इसे सक्षम बनाता है (AMD64 हार्डवेयर और AMD चैनल के लिए OS)। या इसका अनुकरण / अनुकरण / वर्चुअलाइजेशन (वर्चुअल बॉक्स / JVM / ...) या अपने निर्देश सेट के लिए एक संस्करण प्राप्त करें। आप मूल प्रोग्राम के रूप में सेट किए गए अन्य इंस्ट्रक्शन के लिए सॉफ़्टवेयर नहीं चला सकते।
12431234123412341234123

3

फ़ाइल को निष्पादन योग्य बनाने का प्रयास करें

chmod +x um.exe

फिर इसे चलाने का प्रयास करें

./um.exe

लेकिन अगर यह विंडोज़ के लिए एक exe फ़ाइल संकलित है, तो आपको संभवतः वाइन स्थापित करने की आवश्यकता है।


3

बेजोड़ बिट्स के बारे में भाग को छोड़कर जिन लोगों को यह समस्या हो रही है, उनके लिए एक और समाधान यह है कि बिना कमांड "बैश" के फाइल को चलाएं।

बस उपयोग करें chmod +x 'path to the file'और फिर 'the path to the file'टर्मिनल में चलाएं । इस तरह से मैंने अपनी समस्या को हल किया।


0

इस त्रुटि का एक अन्य संभावित स्रोत: मैक पर लिनक्स बाइनरी निष्पादन योग्य चलाने की कोशिश करना, या इसके विपरीत।

उदाहरण के लिए, trueअपने मैक से बाइनरी को उबंटू बॉक्स पर चलाने की कोशिश कर रहा हूं जिसे मैंने इसे एससीपी किया है:

$ ./mactrue 
-bash: ./mactrue: cannot execute binary file: Exec format error

यदि आपने एक बाइनरी डाउनलोड की है और इसे निष्पादित करना इस त्रुटि के साथ विफल हो जाता है, तो जांचें कि क्या आपने गलत ओएस के लिए संस्करण डाउनलोड किया है।


0

मेरे लिए, अपने मैक पर एप्लीकेशन में बाइनरी कॉपी करना और फिर मेरे पथ में इसे मेरे मैक पर गड़बड़ कर दिया। मुझे पूरा यकीन है कि अनुप्रयोग फ़ोल्डर ने बाइनरी को वास्तविक बाइनरी के बजाय एक उपनाम में बदल दिया है।

-bash: /usr/local/bin/terraform: cannot execute binary file
mike$ file /usr/local/bin/terraform 
/usr/local/bin/terraform: MacOS Alias file

मैंने अपने डाउनलोड से बाइनरी को फिर से अनज़िप किया और बस mvइसे अपने पथ पर एड किया और यह ठीक काम किया।

mike$ file /usr/local/bin/terraform
/usr/local/bin/terraform: Mach-O 64-bit executable x86_64
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.