【发布时间】:2021-05-29 15:25:20
【问题描述】:
很长一段时间以来,标准库通过简单地包含编译错误就让我很头疼。长期以来,我通过重新实现我需要的部分或为 cstdio 使用一些#define 来解决它。
现在我需要包含该库,但我真的没有看到任何解决方法。再一次,我也看不出有什么办法——有什么线索可以解决吗?我尝试了以下方法:
#ifndef _CRT_FUNCTIONS_REQUIRED
#define _CRT_FUNCTIONS_REQUIRED 1
#endif // !_CRT_FUNCTIONS_REQUIRED
#include <thread>
还有一些这样的变化,但无济于事。
编辑 - 已修复: 我创建了一个“Math.h”头文件,破坏了任何依赖于标准 C++ 库“math.h”的头文件。重命名标题(及其引用)后,编译的代码。
【问题讨论】:
-
您的问题缺少一些细节(例如哪个编译器/平台),但如果您的编译器将 C
std::命名空间中的运行时内容。 -
请创建一个minimal reproducible example,包括足以展示问题的代码以及对编译器及其选项的完整描述。
-
我正在使用 MSVC 编译器,为 Windows 构建。处理最小的例子。
-
您的编译器安装中出现了问题,或者代码正在执行您未显示的操作。但是,从您的第一句话来看,编译器安装肯定有问题。
-
感谢您的反馈,以后会尝试更详细的。试图重现最小的可重现示例,但收效甚微,我终于猜到了这个问题——我选择将文件命名为与标准 C++ 库中包含的文件相同的文件。我是个笨蛋。感谢您引导我找到这个@alterigel