0

私は CMake にかなり慣れていません。コンパイルしようとすると、次の出力が得られます。私は一日中これをしていましたが、役に立ちませんでした - 誰かがこれを経験したことがありますか? 関連するディレクトリとファイルのアクセス許可は問題ないようです。どんな助けでも大歓迎です!ありがとう

The C compiler identification is GNU 4.6.2
The CXX compiler identification is GNU 4.6.2
Check for working C compiler: C:/MinGW/bin/gcc.exe
Check for working C compiler: C:/MinGW/bin/gcc.exe -- broken
CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeTestCCompiler.cmake:61 (message):
  The C compiler "C:/MinGW/bin/gcc.exe" is not able to compile a simple test
  program.

  It fails with the following output:

   Change Dir: C:/buildtemp/CMakeFiles/CMakeTmp



  Run Build Command:C:/MinGW/bin/mingw32-make.exe
  "cmTryCompileExec2665670929/fast"

  C:/MinGW/bin/mingw32-make.exe -f
  CMakeFiles\cmTryCompileExec2665670929.dir\build.make
  CMakeFiles/cmTryCompileExec2665670929.dir/build

  process_begin: CreateProcess(C:\MinGW\bin\mingw32-make.exe,
  C:/MinGW/bin/mingw32-make.exe -f
  CMakeFiles\cmTryCompileExec2665670929.dir\build.make
  CMakeFiles/cmTryCompileExec2665670929.dir/build, ...) failed.

  make (e=5): Access is denied.


  mingw32-make.exe: *** [cmTryCompileExec2665670929/fast] Error 5





  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:2 (project)


Configuring incomplete, errors occurred!
4

1 に答える 1

1

この問題は、make がヘルパー .bat ファイルを削除および作成したことが原因である可能性があります。Windows では、削除されたファイルがまだ他のアプリケーション (ウイルス対策、Windows のインデックス作成など) によって参照されている場合、同じ名前のファイルを作成することはできません。( C++/Win32: 保留中の削除が完了するのを待つ方法は? ) Make は新しく作成された .bat ファイルに削除したばかりのファイルと同じ名前を使用し、'DELETE PENDING' エラーを取得します。

Date & Time:    29.3.2013 11:11:14
Event Class:    File System
Operation:  IRP_MJ_CREATE
Result: DELETE PENDING
Path:   D:\<truncated>\Debug\make6436-1.bat
TID:    6120
Duration:   0.0000149
Desired Access: Generic Read/Write
Disposition:    Create
Options:    Synchronous IO Non-Alert, Non-Directory File
Attributes: NT
ShareMode:  None
AllocationSize: 0

したがって、ウイルス対策を無効にすることは役に立ちますが、make を修正することははるかに優れています。また、ウイルス対策ソフトウェアで例外を作成することもできます。

于 2013-03-29T10:45:12.597 に答える