2013-06-25 2 views
1

Windows-32 XP에서 Windows 7 64bit로 마이그레이션 중이며 프로젝트 빌드에 문제가 있습니다. 디렉토리 생성과 관련된 첫 번째 단계에서 오류가 나타납니다. 나는 MinGW와 MSYS가 32 비트와 64 비트를 만들도록 노력했다. 아무도 md 명령을 부를 수없는 것 같습니다. 만들Gnu는 Windows 7 64 비트를 사용합니까?

all: 
md C:\_test\trunk\build\win32 

는 MinGW (mingw-w64's toolchains targetting Win64) : 저는 여기에 문제를 지역화하기 위해 만든 아주 간단한 메이크입니다

C:\_tmp>C:\mingw64\bin\mingw32-make.exe 
md C:\_test\trunk\build\win32 
process_begin: CreateProcess(NULL, md C:\_test\trunk\build\win32, ...) failed. 
make (e=2): The system cannot find the file specified. 
Makefile:2: recipe for target 'all' failed 
mingw32-make: *** [all] Error 2 

MSYS를 (64bit는)합니다

C:_tmp>C:\mingw64\msys\bin\make.exe 
md C:\_test\trunk\build\win32 
make.exe": md: Command not found 
make.exe": *** [all] Error 127 

는 아무 문제가 없다 명령 줄에서 실행되는 동일한 명령 :

md C:\_test\trunk\build\win32 

누군가 해결책을 권할 수 있습니까? 고맙습니다.

+1

'md'은 내장 된 윈도우'cmd' 쉘 명령을 실행합니다. 따라서'mkdir'으로 변경하십시오. (아마도 어쨌든 항상 좋은 생각 인 슬래시를 사용해야 할 것입니다). 또는 쉘에게'cmd'를 사용하도록 make에게 지시하십시오. – bobbogo

답변

1

이 문제는 내장 명령을 (그들은 모두 &로 시작)를 사용하여 makepp에서 수정 될 것입니다 :

all: 
      &mkdir -p C:/_test/trunk/build/win32 

진지하게, 즉 가능성이 유일한 문제는 아니다. PATH가 통과하지 못하는 것 같습니다. make가 make를 삼킨다 고 생각하지 않습니다. 아마도 쉘의 설정에서 이미 사라 졌을 것입니다.

그러나 MinGW 쉘을 사용하고 있는지 궁금합니다. 위의 Makefile 코드 조각에서와 같이 Unix 경로 구문을 사용해야하기 때문입니다. {command, cmd}에서도 {exe} exes를 호출 할 때만 백 슬래시가 필요합니다. 이 휴대용, makepp이 컴퓨터에 대한 올바른 슬래시 변수 $/을 제공 만들려면 : makepp 훨씬 더있다

foo/bar: 
      path$/to$/my$/exe some/arg 

. GNU make가 할 수있는 거의 모든 것들을 수행하는 것 외에도, 훨씬 유용한 것들이 많이 있으며, 펄 파일을 사용하여 makefile을 확장 할 수도 있습니다.

0

PATH 변수에 괄호가있는 경로가 있으면 GNU make가 Windows 7 64 비트에서 혼란스러워 보입니다. 업무용 주위 명령의 전체 경로를 지정하고 쉘을 통해 내장 명령을 호출하는 것입니다

MKDIR := C:\Windows\System32\cmd.exe /C MKDIR 

all: 
    $(MKDIR) C:\_test\trunk\build\win32