Получение ошибки о неопределенной ссылке, даже если она определена - PullRequest
0 голосов
/ 17 апреля 2011
   //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 для 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 голосов
/ 17 апреля 2011

Убедитесь, что ваш заголовочный файл Double.h находится в правильной папке, когда вы компилируете main.cpp (они случайно продублированы и ваш main.cpp видит неправильный файл?).

Ваш Double.cpp также должен включать Double.h. Также убедитесь, что вы скомпилировали main.cpp и double.cpp вместе для создания окончательного исполняемого файла вывода.

Эта программа должна работать.

0 голосов
/ 17 апреля 2011

Разве вы не должны включать "Double.cpp" в свой main.cpp?

0 голосов
/ 17 апреля 2011

переместить объявление

int add(int x, int y);

из блока #ifndef

...