编译错误 – fatal error C1189: #error: error in C++ standard library use 的解决办法是什么

编程


我一直在尝试纠正代码中的所有编译错误。 在我得到并实施了我在这里得到的非常好的建议之后[^] 我在那里 pste 最后的 cmpilati 错误。

新的错误是这样的:

1>shell.c
1>C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\include\yvals_core.h(28):STL1003:意外的编译器,预期的 C++ 编译器。
1>C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\include\yvals_core.h(29,1):致命错误 C1189:#error:C++ 标准库使用中的错误
1>sqlite3.c
1>C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\include\yvals_core.h(28):STL1003:意外的编译器,预期的 C++ 编译器。
1>C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\include\yvals_core.h(29,1):致命错误 C1189:#error:C++ 标准库使用中的错误

上网查了一下,可能与宏使用不当有关。 溶液可能是什么?

顺便说一下,我使用的是 Visual Studio 2022。

以下信息可能是相关的:从错误消息看来,该错误可能与我将#include“stdAfx.h”包含到shell.c和sqlite3.c有关,它们是sqlite3嵌入式数据库的c文件。 #include “stdAfx.h” 到 C 文件是否错误? 我过去的经验是,视觉迫使人们将 stdafx.h 添加到每个非标题文件中。 c f 被排除在外吗?

我尝试过的:

我花了一些时间在谷歌搜索后重新整理错误代码。

解决方案1

stdAfx.h 是一个 C++ 头文件 – 它包含 C 编译器无法理解的代码,因为它不属于 C 语言。 C++ 是 C 的超集,而不是相反!

您不能在 C 代码中包含 C++ 标头 – 它不起作用。 您必须用 C++ 编写应用程序才能使用 C++ 的任何功能!

コメント

タイトルとURLをコピーしました