make: इंटरप्ट / एक्ससेप्शन पकड़ा गया


33

मैं MinGW वितरण से मेक का उपयोग कर रहा हूं। यह हमेशा काम किया है, लेकिन हाल ही में मैंने निम्नलिखित त्रुटि प्राप्त की है:

> make clean
make: Interrupt/Exception caught (code = 0xc0000005, addr = 0x0040b0ac)

और संबंधित हिस्सा इस तरह दिखता है:

clean:
    del /S /Q *.o > nul
    del /S /Q *.cy.c > nul
    del /S /Q *.pyc > nul
    del /S /Q *.pyo > nul
    if EXIST build (rmdir /S /Q dist > nul)

मुझे नहीं पता कि इसका क्या कारण है। खासकर क्योंकि यह हमेशा पूरी तरह से ठीक काम किया है।


1
क्या आपने अपडेट करने की कोशिश की है? gnu.org/software/make
Heredia Montiel

जवाबों:


46

मैं एक अपवाद प्राप्त करना शुरू कर रहा था:

make: Interrupt/Exception caught (code = 0xc00000fd, addr = 0x4227d3)

एक अलग कारण हो सकता है, लेकिन इस समस्या को जाहिरा तौर पर तब होता है जब पथ चर कोष्ठक शामिल (, ), के रूप में यह जीत Vista / 7 पर करता है। दुर्भाग्य से, विंडोज के लिए उपलब्ध जीएनयू निराशाजनक रूप से पुराना है।

मेरी समस्या को makeसही शेल का उपयोग करने के लिए मजबूर करके तय किया गया था : अपने मेकफाइल की शुरुआत में निम्न पंक्ति डालें।

SHELL=C:/Windows/System32/cmd.exe

महान समाधान, लेकिन मुझे नहीं पता कि यह क्यों काम नहीं कर रहा था, मेरे पास मेरे पर्यावरण चर में कोष्ठक नहीं हैं
forsubhi

1
PATH की लंबाई से भी संबंधित हो सकता है? मेरे मामले में, मेरे पेट में पहले से ही बिना किसी समस्या के बहुत सारे कोष्ठक थे (जब तक कि मैंने कुछ और सामान नहीं लगाया); के सभी उदाहरणों की जगह C:\Program Filesके साथ C:\PROGRA~1और C:\Program Files (x86)साथ C:\PROGRA~2मेरे लिए समस्या तय। +1 :-)
कैमरन

मैं भी इस मुद्दे था, और के मेकअप एक नए संस्करण में स्विच: equation.com/servlet/equation.cmd?fa=make - यह समस्या का समाधान नहीं होता है, लेकिन यह अपवाद बेहतर संभालती है और आप क्या हो रहा है बताता है: sh: C:\Program: No such file or directoryहै अगर मुझे SHELLवैरिएबल में पास नहीं होता है तो मुझे पहली पंक्ति मिलेगी । मूल रूप से PATH पर "प्रोग्राम फाइल्स" के प्रत्येक उदाहरण में एक स्थान होता है जिसे ठीक से नहीं छोड़ा गया है (जहाँ तक बनाने की बात है)। यह पथ की लंबाई नहीं है, लेकिन रिक्त स्थान जो इस समस्या का कारण बन रहे हैं। यह बताता है कि रिक्त स्थान के बिना मैक्रो का उपयोग करना क्यों तय किया।
जोहान्स

इस समाधान ने मेरे लिए काम किया।
रॉबर्ट स्टिफ़लर

8

मेरे पास वह मुद्दा था जब मैंने Git की बिन निर्देशिका को PATHपर्यावरण चर में जोड़ा था । कारण यह प्रतीत होता है कि MSYS के एक संस्करण के साथ Git के जहाज और जो MinGW के साथ संघर्ष करने के लिए लगता है (शायद यह संघर्ष नहीं करता है जब यह MSYS और / या MinGW का सही संस्करण है लेकिन यह सिर्फ अनुमान है)।

इसलिए सुनिश्चित करें कि आपके में कोई (अन्य) MSYS वितरण नहीं है PATH


1
बिन निर्देशिका के लिए Git पथ मेरे लिए मुद्दा था! बहुत बढ़िया !
ट्रिडेनटीट जूल 29'14

3

Futher से Norbet P. के उत्तर में, मैंने पाया कि जोड़ना:

PATH=

मेरे Makefile के शीर्ष पर मेरे लिए यह विशेष समस्या निर्धारित की गई।


1
मैं -1 नहीं दे रहा हूं, लेकिन यह एक बहुत बुरा जवाब है। आप सिर्फ पेट को रीसेट नहीं कर सकते हैं !!! यह बहुत बुरा अभ्यास है! कुछ समय का कार्यक्रम संकलन पीएटीएच में जानकारी पर निर्भर करता है।
क्वांटम भौतिक विज्ञानी


2

मैंने GnuWin का उपयोग किया जब तक मुझे एहसास हुआ कि अंतिम रिलीज 2006 में 26 नवंबर को वापस पोस्ट की गई थी । थोडा लंगड़ा, और ऊपर देखा के रूप में इस तरह की समस्याओं का कारण बना। SHELL = C: /Windows/System32/cmd.exe सेट करना कुछ समस्याओं को हल करता है लेकिन नए ऑपरेटिंग सिस्टम पर इस तरह के पुराने कोड को चलाने से असुरक्षित महसूस होता है

MinGw एक सुरक्षित शर्त है। MinGw "विंडोज के लिए मिनिमलिस्ट जीएनयू" के लिए संक्षिप्त है और आज तक है और इसमें मेक और अन्य टूल शामिल हैं

http://sourceforge.net/projects/mingw/files/


1
क्या आपने प्रश्न भी पढ़ा है?
orlp

1

विंडोज त्रुटि कोड 0xC0000005एक पहुंच उल्लंघन, या विभाजन दोष को इंगित करता है।

  • क्या आपका MinGW इंस्टॉलेशन दूषित है?
  • क्या आपका सिस्टम ठीक से कॉन्फ़िगर किया गया है? क्या हाल ही में कोई सिस्टम सेटिंग बदली गई है?
  • क्या आपके सिस्टम में हार्डवेयर समस्याएं हैं? आपको CHKDSK का उपयोग करके हार्ड ड्राइव को स्कैन करने या मेमोरी टेस्ट करने की आवश्यकता हो सकती है जैसे कि Memtest86 +

-1

मैंने अपने संकलित लॉग में देखा कि "शेल = श" बनाने के लिए पारित किया जा रहा था, भले ही मैं विंडोज़ प्लेटफॉर्म पर हूं। मेरी माकाइल इस तरह दिखीं:

ifneq (, $ (खोज जीत, $ (RDI_PLATFORM))) SHELL = CMD एंडिफ़

एक बार मैंने इफने पर टिप्पणी की और अंत में काम करना शुरू कर दिया। यह निश्चित नहीं है कि प्लेटफ़ॉर्म की सही व्याख्या क्यों नहीं की गई।


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