gpt4 book ai didi

c++ - Cygwin g++ 和声明没有声明任何东西

转载 作者:搜寻专家 更新时间:2023-10-31 01:14:23 26 4
gpt4 key购买 nike

首先,我不是 C/C++ 的忠实用户,但我有一个项目是用两种语言编写的。此外,它基于某些 Unix 类型(所以 VS 不是一个选项,是吗?)我目前使用的是 Windows 7 x32,我决定看一下 Cygwin(g++ 编译器)。但在移动整个项目之前,我想尝试在不那么困难的情况下进行。

所以我有

主要.cpp

#include <iostream>
#include "h/math.h"

int main()
{
Math math; // just declare the Math variable, nothing else

std::cin.get();
return 0;
}

数学.h

#ifndef math
#define math

class Math
{
public:
int Addition(int, int);
int Multiplication(int, int);
};

#endif

数学.cpp

#include "math.h"

int Math::Addition(int x, int y)
{
return x + y;
}

int Math::Multiplication(int x, int y)
{
return x * y;
}

然后我打开“...\Cygwin\Cygwin.bat”,将路径设置为我的文件 (cd C:\Proj) 并尝试使用以下命令进行编译:

$ g++ main.cpp

我得到的是一个错误: main.cpp: 错误:声明没有声明任何东西

怎么了?据我所知,它不喜欢我的“数学数学”行,但在我的 VS2010 中尝试没有这样的错误。它是由于 g++ 编译器而发生的吗?它不支持“类”声明吗?我应该更改什么才能运行该代码?

谢谢!

最佳答案

您在标题中#define math。所以预处理器看到 Math 并“哦,等等,#define math,所以 Math 是正确的替换”。因此,当向编译器提供声明时,它会看到 Math ;。这显然不是犹太洁食。宏应该始终全部大写,特别是 header 保护通常采用非常具体的形式,例如 HEADER_GUARD_MATH_H 或类似的东西。

关于c++ - Cygwin g++ 和声明没有声明任何东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11413794/

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