gpt4 book ai didi

windows - D9024 制作无法识别的源文件类型

转载 作者:可可西里 更新时间:2023-11-01 10:06:55 52 4
gpt4 key购买 nike

如果我使用 MS cl 在 cmd 行上运行此 cmd:

cl -c /W3 /Od ioapi.c

目标文件 ioapi.obj 已按预期创建。

如果我用这个条目创建一个 makefile:

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

上面cl之前有一个tab

然后运行 ​​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环境的问题。但是,即使我在运行 make 之前运行 vcvars32.bat 文件来设置 MS 环境,也没有什么区别。

我注意到如果我使用这个:

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

然后错误消失了。但我确实需要传入编译器开关。

最佳答案

问题是 make 对/W3/Od 开关的处理。由于/符号,make 似乎认为/W3 是文件的开头。所以为了防止这种情况,我将开关更改为使用 - 而不是/。例如 -W3 -Od,MS 编译器/链接器可以接受。

因此需要在 makefile 中进行的更改是:

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

关于windows - D9024 制作无法识别的源文件类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17012419/

52 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com