获取有关未定义引用的错误,即使已定义

时间:2011-04-17 03:26:20

标签: c++ header header-files

   //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程序,我正在使用Codeblocks for C ++。它一直说add wasn't declared in this scope。当我在int add (int x,int y)之后在main.cpp文件中声明using namespace std;时,它说"undefined reference for add(int,int)。我不明白这一点,我真的认为它会起作用。有人可以指出错误吗?

3 个答案:

答案 0 :(得分:0)

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

您的Double.cpp也应包含Double.h。另外,请确保同时编译main.cppdouble.cpp以生成最终的可执行输出文件。

这个程序应该可行。

答案 1 :(得分:0)

你不应该在main.cpp中包含“Double.cpp”吗?

答案 2 :(得分:-1)

移动声明

int add(int x, int y);

超出#ifndef