如何修复此编译器错误

How do I fix this compiler error

本文关键字:错误 编译器 何修复      更新时间:2023-10-16

在过去5个小时左右的时间里,我一直在研究这个问题。我已经做了研究,试图找出问题所在,但我无法理解遗漏了什么。如果有人能帮我解决这个小问题,我将感谢

这是代码

#include <iostream>
using namespace std;
bool isPrime (int num);
int main()
{
   int num=0;
   cout << "Enter a number and I'll tell you whether it is prime: ";
   cin >> num;
   if (isPrime(num)==true)
      cout << num << " is prime.";
   else
      cout << num << " is NOT prime.";

   return 0;
}
bool isPrime(int input)
{
   if(input<1) 
      return false;
   else if (input == 1||input ==2 ||input==3)
   {
      return true;
   }
   else
   {
      for(int i=2; i<input; i++)
      {
         if(input%i==0)
            return false;
      }
      return true;
   }
}

它给了我这个编译器错误

./main.cpp: In function ‘int main()’:
./main.cpp:31:6: error: redefinition of ‘int main()’
 int main()
  ^
./main.cpp:10:5: error: ‘int main()’ previously defined here
 int main() {
 ^

我不知道这意味着什么,但从我研究的地方来看,这意味着有两个干线,但我只有一个。

以下代码在windows上使用TurboC++编译良好,并根据需要给出适当的结果:

    #include <iostream.h>
    enum bool {true, false};
    bool isPrime (int num);
    int main()
    {
     int num=0;
      cout << "Enter a number and I'll tell you whether it is prime: ";
      cin >> num;
      if (isPrime(num)==true)
        cout << num << " is prime.";
      else
        cout << num << " is NOT prime.";
      return 0;
    }
    bool isPrime(int input)
    {
    if(input<1) {
      cout<<"Negatives not allowed"<<endl;
      return false;
    }
    else if(input == 1) {
      return false;
    }
    else if (input ==2 ||input==3) {
      return true;
    }
    else {
      for(int i=2; i<input; i++) {
         if(input%i==0)
            return false;
        }
            return true;
     }
    }

确保您没有包含任何其他定义main()的文件

如果你在visualstudio中工作,你应该检查解决方案资源管理器中是否有其他.cpp文件,尤其是如果你已经将其从旧的解决方案中移了过来,在那里你可能忘记了删除旧的引用。如果失败了,你可以将现有的代码复制并粘贴到一个新项目中,因为你所拥有的不应该产生你所得到的错误。

您是否在没有包含保护的情况下从多个其他文件中包含此文件?或者,您可能会在项目中忘记的另一个cpp文件中写入另一个main,在这种情况下,请确保您不会通过排除或创建一个全新的项目并单独添加所需的每个文件来构建该项目。

我发现,对于大多数IDE,甚至命令行编译,当你遇到非常奇怪的错误并且无法修复时,创建一个新项目可以解决其中的许多问题。

您的确切代码在我的编译器上运行得很好。因此,您的代码没有问题。这种问题总是发生在编译器身上。我认为您使用的是一个IDE,您在其中创建了一个项目并添加了另一个代码,该代码也具有main()函数。因此,您可以通过从头开始创建一个新项目并复制粘贴此代码来轻松解决此问题。