0

これは私が取得し続けるエラーです。私のクラスへの未定義の参照。私はわかりません。私はそれらをリンクしていると思います。これが私のメインの外観です。

    #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
4

2 に答える 2

3
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
于 2012-11-02T02:10:51.670 に答える
2

関数定義を見つけることができるように、randomNumberMagnifier.o を g++ コマンドに提供する必要があります。以下のコマンドでテストしましたが、動作しました

g++ -o p4Driver p4Driver.cpp randomNumberMagnifier.o
于 2012-11-02T02:03:45.363 に答える