나는 저주받은 cl.exe를 실행하는 데 이상한 문제가 있습니다. C/C++ 프로젝트로 구성된 대용량 VS2008 솔루션에서 몇 가지 스크립트를 실행하여 추가 처리를 수행하는 프로젝트가 하나 있습니다. 이 프로젝트는 Perl 스크립트 (ActiveState Perl이 시스템에 있음)를 호출하는 사전 빌드 이벤트로 구성됩니다. 이 Perl 스크립트는 /E
으로 cl.exe를 호출하여 전처리 된 출력을 생성하여 파일로 리디렉션합니다. 펄 라인은 다음과 같습니다Perl에서 cl.exe를 호출 할 때 cl.exe가 출력을 생성하지 않는 이유는 무엇입니까?
my $foo = `"\path\to\cl.exe" @args.rsp >out.txt 2>err.txt`;
args.rsp이 표준 출력에 미리 프로세서 출력을 얻을 수 /E
을 포함, CL.EXE에 대한 명령 행 인수의 무리 포함 된 일반 텍스트 파일입니다.
이 정확한 명령 줄은 VS2008 명령 프롬프트에서 실행할 때 예상대로 작동합니다. 내 Windows XP 시스템에서도 프로젝트를 잘 만들 수 있습니다. 그러나, 내 새 Windows 7 상자에서 프로젝트를 빌드 할 때 out.txt 빈 끝납니다. 또한 동료의 Windows 7 상자 중 일부에 추가해야하며 정상적으로 작동하며 다른 일부에서는 작동하지 않습니다.
분명히 구성 차이가 있지만 분명히있을 수 있습니다. VS2008 SP1 및 ActiveState Perl의 일치하는 버전을 확인했습니다. 나는 펄 스크립트 내에서 무수한 해결 방법을 시도했다. 을 사용하여 파일에 출력 한 다음 파일을 옮긴다 (파일이 비어 있음). 아무 것도 동작을 변경하지 않았습니다. 출력은 명령 줄을 수동으로 실행할 때 생성되지만이 프로젝트의 미리 빌드 이벤트 내에서 실행될 때는 생성되지 않습니다.
어떤 종류의 구성 문제가 발생했는지에 대한 아이디어가 있습니까? 나는 추구 할 길에서 거의 벗어났다.
나는이 문제를 해결했다는 것을 알았지 만 경로에서 백 슬래시가 누락 된 것처럼 보이거나 놀라 울 따름이다. –