Saya menggunakan Make dari distribusi MinGW. Itu selalu berhasil, tetapi baru-baru ini saya mendapatkan kesalahan berikut:
> make clean
make: Interrupt/Exception caught (code = 0xc0000005, addr = 0x0040b0ac)
Dan bagian masing-masing terlihat seperti ini:
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)
Saya tidak tahu apa yang menyebabkan ini. Terutama karena selalu bekerja dengan sangat baik.
Jawaban:
Saya mulai mendapatkan pengecualian juga:
Mungkin alasan yang berbeda, tapi masalah ini tampaknya disebabkan ketika variabel PATH berisi tanda kurung
(
,)
, seperti halnya pada Win Vista / 7. Sayangnya, GNU yang tersedia untuk Windows sudah usang.Masalah saya telah diperbaiki dengan memaksa
make
menggunakan shell yang benar: masukkan baris berikut di awal makefile Anda.sumber
C:\Program Files
denganC:\PROGRA~1
danC:\Program Files (x86)
denganC:\PROGRA~2
memperbaiki masalah untuk saya. +1 :-)sh: C:\Program: No such file or directory
adalah baris pertama yang saya dapatkan jika saya tidak lulus dalamSHELL
variabel. Pada dasarnya setiap instance dari "Program Files" pada PATH berisi ruang yang tidak lolos dengan benar (sejauh menyangkut). Itu bukan panjang jalan, tetapi ruang yang menyebabkan masalah ini. Ini menjelaskan mengapa menggunakan makro tanpa spasi memperbaikinya.Saya punya masalah ketika saya menambahkan direktori bin Git ke
PATH
variabel lingkungan. Alasannya tampaknya karena Git hadir dengan versi MSYS dan yang tampaknya bertentangan dengan MinGW (mungkin tidak bertentangan ketika itu adalah versi MSYS dan / atau MinGW yang tepat tetapi itu hanya menebak).Jadi pastikan tidak ada distribusi MSYS (lainnya) di blog Anda
PATH
.sumber
Selanjutnya untuk jawaban Norbet P., saya menemukan bahwa menambahkan:
ke bagian atas Makefile saya memperbaiki masalah khusus ini untuk saya.
sumber
Ini
make
bug adalah tetap setidaknya di.
sumber
Saya menggunakan GnuWin sampai saya menyadari rilis terakhir telah diposting kembali pada 26 November 2006 . Itu agak timpang, dan menyebabkan masalah seperti yang terlihat di atas. Pengaturan SHELL = C: /Windows/System32/cmd.exe memang memecahkan beberapa masalah tetapi menjalankan kode lama pada sistem operasi baru terasa tidak aman
MinGw adalah taruhan yang lebih aman. MinGw adalah akronim untuk "GNU Minimalis untuk Windows" dan terkini dan termasuk make dan alat lainnya
http://sourceforge.net/projects/mingw/files/
sumber
Kode kesalahan Windows
0xC0000005
menunjukkan pelanggaran akses, atau kesalahan segmentasi.sumber
Saya perhatikan di kompilasi log saya bahwa "SHELL = sh" sedang dilewati untuk membuat, meskipun saya di platform windows. Makfile saya terlihat seperti ini:
ifneq (, $ (findstring win, $ (RDI_PLATFORM))) SHELL = CMD endif
Suatu ketika saya berkomentar ifneq dan mengakhirinya mulai bekerja. Tidak yakin mengapa platform tidak ditafsirkan dengan benar.
sumber