<p>ninja: error: remove (someDirectory) Izin ditolak. Windows</p>

Dibuat pada 9 Okt 2014  ·  6Komentar  ·  Sumber: ninja-build/ninja

Setelah menjalankan "ninja -t clean" mendapat "Izin ditolak" saat menghapus folder.

MSDN menggambarkan stdio.h remove () sebagai fungsi untuk menghapus file (bukan direktori), sedangkan halaman manual Linux menggambarkannya sebagai fungsi untuk menghapus file dan folder. Bisa jadi masalah khusus platform.

Memanggil _rmdir () (http://msdn.microsoft.com/en-us/library/wt8es881.aspx) melakukan triknya.

bug windows

Komentar yang paling membantu

CMakeLists.txt
Masalah masih ada di 1.7.2 di Windows & Linux.

Saya menambahkan proyek CMake yang akan membuang kesalahan ini pada ninja clean (i cant code file ninja).
Catatan: ini berfungsi dengan generator Make atau VS.

Semua 6 komentar

+1

Di direktori linux hanya dihapus jika kosong. Bisakah perilaku diubah menjadi penghapusan rekursif? Atau mungkin berikan buildscript kesempatan untuk melakukan pembersihan sebelum -t clean mencoba untuk menghapus () direktori?

Masalah yang sama di sini.
Direktori dibuat dengan aturan yang dibuat dari CMake add_custom_command ()

ninja bersih
[1/1] Membersihkan semua file bawaan ...
GAGAL: / usr / bin / ninja -t clean
ninja: error: hapus (mydirectory): Direktori tidak kosong

CMakeLists.txt
Masalah masih ada di 1.7.2 di Windows & Linux.

Saya menambahkan proyek CMake yang akan membuang kesalahan ini pada ninja clean (i cant code file ninja).
Catatan: ini berfungsi dengan generator Make atau VS.

Di direktori linux hanya dihapus jika kosong. Bisakah perilaku diubah menjadi penghapusan rekursif?

Akan menjadi perubahan yang cukup besar dan orang-orang mungkin kehilangan file mereka. Lihat # 1334 btw.

Mari kita pertahankan masalah ini tentang kesalahan "Izin ditolak" khusus Windows.

Dokumentasi Microsoft untuk remove mengatakan bahwa itu "menetapkan errno ke EACCES untuk menunjukkan bahwa jalur menentukan file hanya-baca, menentukan direktori, atau file terbuka ...", sehingga menjelaskan apa yang terjadi . Tidak masalah jika direktori tersebut kosong, seseorang tidak dapat memanggil remove pada direktori jika menggunakan msvcrt.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat