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.
+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.
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.