gpt4 book ai didi

c++ - 在 VS2010 中编译旧 C++ 代码时出现 cmath 编译错误

转载 作者:可可西里 更新时间:2023-11-01 15:48:01 24 4
gpt4 key购买 nike

我继承了一些 C++ 文件和一个附带的 makefile,我正试图将其作为解决方案引入 VS2010。我创建了一个空项目,并为其中一个生成文件目标添加了适当的 C++ 和 header (.hpp) 文件。

但是,当我尝试编译该项目时,我立即收到大量来自 cmath 的关于 acosf、asinf、atanf 等的 C2061(语法错误标识符)错误。

cmath中的错误行:

#pragma once
#ifndef _CMATH_
#define _CMATH_
#include <yvals.h>

#ifdef _STD_USING
#undef _STD_USING
#include <math.h>
#define _STD_USING

#else /* _STD_USING */
#include <math.h>
#endif /* _STD_USING */

#if _GLOBAL_USING && !defined(RC_INVOKED)

_STD_BEGIN
using _CSTD acosf; using _CSTD asinf;

相关 C++ 文件的顶部 block (尽管命名为 .C):

#include <fstream>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

using namespace std;

紧随其后的是 main() 函数,它不直接调用任何 trig 函数。这必须是非常明显的东西,但我想念它。谁能帮忙?

谢谢!

最佳答案

您确定它正在编译为 C++ 吗?大多数编译器会将 .C 文件编译为 C,将 .cpp 文件编译为 C++,使用 C 编译器编译 C++ 文件可能会失败。

此外,该代码混合了旧式 ('c') header 和新式 ('c++') header 。它应该更像这样(但我怀疑这是错误)。

#include <fstream>
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>

using namespace std;

这就是我能看到的所有内容。但大多数时候,当你在 C/C++ 本身的库文件中出错时,它仍然是你的代码在某处出错,比如忘记了;在头文件中的类语句之后。

关于c++ - 在 VS2010 中编译旧 C++ 代码时出现 cmath 编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3141455/

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