未定义的引用

undefined reference to

本文关键字:引用 未定义      更新时间:2023-10-16

这是我不断遇到的错误。对我的班级的未定义引用。我不知道。我想我将它们联系起来。这就是我的主要外观。

    #include <iostream>
    #include "randomNumberMagnifier.h"
    using namespace std;
     int main()
      {
        randomNumberMagnifier r1, r2;
      cout << "Random Number "<< r1.getRandomNumber();
       cout << endl;

      } 

我不确定我在做什么错。这就是它的样子。当我编译

      [singha1@cs1 p4]$ g++ -c randomNumberMagnifier.cpp
       [singha1@cs1 p4]$ g++ -o p4Driver.cpp
        g++: no input files
        p4Driver.cpp:(.text+0x8c): undefined reference to `randomNumberMagnifier::getRandomNumber
     collect2: ld returned 1 exit status

      #ifndef RANDOMNUMBERMAGNIFIER_H
#define RANDOMNUMBERMAGNIFIER_H
class randomNumberMagnifier
{
  int addFactor;
  int multFactor;
  bool addOn;
  bool multOn;
  int randomNumber;
  static const int MAX_ADD_FACTOR = 100;
  static const int MAX_MULT_FACTOR = 20;
  static const int MAX_RANDOM = 200;
 public:
  randomNumberMagnifier();
  //~randomNumberMagnifer();
  randomNumberMagnifier& operator=(const randomNumberMagnifier& rhs);
  randomNumberMagnifier(const randomNumberMagnifier& arandom);
  randomNumberMagnifier(bool aState, bool mState);
  int randomMagnifier();
  int getAdd();
  int getMult();
  bool getAddState();
  bool getMultState();
  int getRandomNumber();

};
#endif
g++ -o p4Driver.cpp

没有说出应该编译到的内容,这是-o应该是用的。您想要:

g++ -c randomNumberMagnifier.cpp
g++ -c p4Driver.cpp
g++ randomNumberMagnifier.o p4Driver.o -o p4Driver

或仅:

g++ randomNumberMangifier.cpp p4Driver.cpp -o p4Driver

您需要将RandomNumberMagnifier.o提供给G 命令,因此它可以找到函数定义。我用以下命令进行了测试,我工作

g++ -o p4Driver p4Driver.cpp randomNumberMagnifier.o