如果我使用 MS cl 在 cmd 行上运行此 cmd:
cl -c /W3 /Od ioapi.c
目标文件 ioapi.obj 按预期创建。
但是,如果我使用此条目创建一个生成文件:
ioapi.obj: ioapi.c
cl -c /W3 /Od ioapi.c
上面的 cl 之前有一个选项卡
并运行 make 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 个月前的。
如果我运行 make -n ioapi.c 我会按预期得到这个报告:
cl -c /W3 /Od ioapi.c
我正在从 Visual Studio 2008 命令提示符运行 cl.exe(其中 VS2008 环境变量是预先设置的)。
为什么我会收到这个奇怪的错误以及如何解决它?
我确实想知道这是否是 MS 环境的问题。但是即使我在运行之前运行 vcvars32.bat 文件来设置 MS 环境,也没有什么区别。
我注意到如果我使用这个:
ioapi.obj: ioapi.c
cl -c ioapi.c
然后错误消失。但我确实需要传入编译器开关。