2013-06-09 2 views
2

내가 MS의 CL을 사용하여 cmd를 줄이 cmd를 실행하면 예상대로D9024은 알 수없는 소스 파일 형식을 만들

cl -c /W3 /Od ioapi.c 

오브젝트 파일이 ioapi.obj이 만들어집니다.

나는이 항목에 메이크 파일을 생성하지만 경우

ioapi.obj: ioapi.c 
    cl -c /W3 /Od ioapi.c 

위의 CL 전에 탭과 ioapi.obj가 나는이 오류 얻을 수 있도록 실행

make ioapi.obj 
cl -c /W3 /Od ioapi.c 
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.21022.08 for 80x86 
Copyright (C) Microsoft Corporation. All rights reserved. 

cl : Command line warning D9024 : unrecognized source file type 'C:/MinGW/msys/1.0/W3', object file assumed 
cl : Command line warning D9027 : source file 'C:/MinGW/msys/1.0/W3' ignored 
cl : Command line warning D9024 : unrecognized source file type 'C:/MinGW/msys/1.0/Od', object file assumed 
cl : Command line warning D9027 : source file 'C:/MinGW/msys/1.0/Od' ignored 

ioapi.c

cl : Command line warning D9024 : unrecognized source file type 'C:/MinGW/msys/1.0/W3', object file assumed 

cl은 MS VS 2008 컴파일러입니다.

저는 minGW를 설치했습니다. 버전은 6 개월 전부터 있습니다. 내가 -n ioapi.c을 실행하면

나는이 예상대로보고받을 :

cl -c /W3 /Od ioapi.c 

내가 VS2008의 ENV 변수를 미리 설정되는 비주얼 스튜디오 2008 명령 프롬프트 (에서 CL.EXE를 실행하고).

이 이상한 오류가 발생하는 이유는 무엇이며 어떻게 수정합니까?

MS 환경에 문제가 있는지 궁금합니다. 하지만 vcvars32.bat 파일을 실행하여 실행하기 전에 MS 환경을 설정해도 아무런 차이가 없습니다.

ioapi.obj: ioapi.c 
    cl -c ioapi.c 

그런 다음 오류가 도망 간다 :

나는 내가 이것을 사용하는 경우 것으로 나타났습니다. 하지만 컴파일러 스위치를 전달해야합니다.

답변

2

문제는/W3/Od 스위치를 처리 할 때 발생했습니다. 그것은 make/W3이/기호로 인해 파일의 시작이라고 생각합니다. 그래서 이것을 방지하기 위해/대신 스위치를 사용하도록 변경했습니다. 예 : -W3 -Od는 MS 컴파일러/링커가 수용 할 수 있습니다.

그래서 필요했다 메이크의 변화는 다음과 같습니다

ioapi.obj: ioapi.c 
    cl -c -W3 -Od ioapi.c 
+0

감사합니다, 이건 내 D9024의 오류의 원인이 있었는지 추적 도왔다. 내 .vcxproj에서 를 편집하고 ';'을 (를) 추가하는 것을 잊었습니다. 방금 추가 한 경로 중 하나의 끝에서 – thehelix

관련 문제