「ninja-tclean」を実行した後、フォルダの削除中に「アクセスが拒否されました」というメッセージが表示されました。
MSDNでは、stdio.h remove()を(ディレクトリではなく)ファイルを削除するための関数として説明していますが、Linuxのマニュアルページでは、ファイルやフォルダを削除するための関数として説明しています。 プラットフォーム固有の問題である可能性があります。
_rmdir()(http://msdn.microsoft.com/en-us/library/wt8es881.aspx)を呼び出すとうまくいきます。
+1
Linuxでは、ディレクトリは空の場合にのみ削除されます。 動作を再帰的削除に変更できますか? または、-t cleanがディレクトリをremove()しようとする前に、buildscriptにクリーンアップを実行する機会を与えますか?
ここで同じ問題。
ディレクトリは、CMake add_custom_command()から作成されたルールによって生成されました
忍者クリーン
[1/1]ビルドされたすべてのファイルをクリーンアップしています...
失敗:/ usr / bin / ninja -t clean
忍者:エラー:remove(mydirectory):ディレクトリが空ではありません
CMakeLists.txt
この問題は、WindowsおよびLinuxの1.7.2でも引き続き発生します。
忍者クリーンでこのエラーをスローするCMakeプロジェクトを追加しました(忍者ファイルをコーディングできません)。
注:MakeまたはVSジェネレーターで動作します。
Linuxでは、ディレクトリは空の場合にのみ削除されます。 動作を再帰的削除に変更できますか?
かなり大きな変更になり、人々はファイルを失う可能性があります。 #1334ところで参照してください。
ただし、Windowsのみの「アクセスが拒否されました」エラーについてはこの問題を保持しましょう。
remove
に関するMicrosoftのドキュメントには、「パスが読み取り専用ファイルを指定するか、remove
を呼び出すことはできません。
最も参考になるコメント
CMakeLists.txt
この問題は、WindowsおよびLinuxの1.7.2でも引き続き発生します。
忍者クリーンでこのエラーをスローするCMakeプロジェクトを追加しました(忍者ファイルをコーディングできません)。
注:MakeまたはVSジェネレーターで動作します。