获得关于未定义引用的错误,即使它已定义

Getting error about an undefined reference, even though it is defined

本文关键字:定义 错误 未定义 引用      更新时间:2023-10-16
   //Double.h file
   #ifndef Double_h
   #define Double_h
   int add(int x,int y);
   #endif 

  //Double.cpp file
  int add(int x,int y)
 {
    return x + y;
 }
 //main.cpp file
 #include <iostream>
 #include "Double.h"
 using namespace std;

 int main()
  {
    cout << add(7,8)<<endl;
    return 0;
  }

它应该是一个简单的7+8程序,我使用c++代码块。它一直说add wasn't declared in this scope,当我在main.cpp文件中在using namespace std;之后声明int add (int x,int y)时,它说的是"undefined reference for add(int,int)。我不明白这一点,我真的以为它会成功。有人能指出这个错误吗?

确保您的头文件Double.h在编译main.cpp时位于正确的文件夹中(它们是否偶然重复并且您的main.cpp看到错误的文件?)

你的Double.cpp也应该包括Double.h。还要确保同时编译main.cppdouble.cpp以生成最终的可执行输出文件。

你不应该在main.cpp中也包含"Double.cpp"吗?

移动声明

int add(int x, int y);

out of #ifndef block