C++ 未定义的引用

C++ 未定义的引用,c++,C++,这是我一直犯的错误。对我的类的未定义引用。我不确定。我想我把它们联系起来了。这就是我的主菜的样子 #include <iostream> #include "randomNumberMagnifier.h" using namespace std; int main() { randomNumberMagnifier r1, r2; cout << "Random Number "<&l

这是我一直犯的错误。对我的类的未定义引用。我不确定。我想我把它们联系起来了。这就是我的主菜的样子

    #include <iostream>
    #include "randomNumberMagnifier.h"

    using namespace std;

     int main()
      {
        randomNumberMagnifier r1, r2;

      cout << "Random Number "<< r1.getRandomNumber();
       cout << endl;


      } 

您需要向g++命令提供randomNumberMagnier.o,以便它能够找到函数定义。我用下面的命令进行了测试,我工作了

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

您需要向g++命令提供randomNumberMagnier.o,以便它能够找到函数定义。我用下面的命令进行了测试,我工作了

g++ -o p4Driver p4Driver.cpp randomNumberMagnifier.o
这并不是说它应该编译成什么,这就是
-o
应该用来做的。你想要:

g++ -c randomNumberMagnifier.cpp
g++ -c p4Driver.cpp
g++ randomNumberMagnifier.o p4Driver.o -o p4Driver
或者只是:

g++ randomNumberMangifier.cpp p4Driver.cpp -o p4Driver
这并不是说它应该编译成什么,这就是
-o
应该用来做的。你想要:

g++ -c randomNumberMagnifier.cpp
g++ -c p4Driver.cpp
g++ randomNumberMagnifier.o p4Driver.o -o p4Driver
或者只是:

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


这可能有你的答案:RandomNumberMagnier.h中有什么?首先确保该文件是项目的一部分(有时会发生这种情况)。RandomNumberMagnier.cpp中有什么?这可能有你的答案:RandomNumberMagnier.h中有什么?首先确保该文件是项目的一部分(有时会发生这种情况).randomNumberMagnifier.cpp?/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../../../lib64/crt1.o:在函数
\u start':(.text+0x20):未定义对
main'randomNumberMagnifier.o:在函数
randomNumberMagnifier::randomNumberMagnifier(bool,bool):randomNumberMagnifier.cpp:(.text+0x171)的引用:对
randomNumberMagnifier::MAX_RANDOM'randomNumberMagnifier.o:在函数中
randomNumberMagnifier::randomNumberMagnifier(bool,bool)':randomNumberMagnifier.cpp:(.text+0x235):对
randomNumberMagnifier::MAX_RANDOM'collect2:ld的未定义引用返回1个退出状态找不到MAX_RANDOM?您的RandomNumberMagnier.h或.cpp是否依赖于其他文件而未包含它们?您是否将RandomNumberMagnier.cpp中的MAX_RANDOM初始化为int RandomNumberMagnier::MAX_RANDOM=0?执行此操作时,g++-o p4Driver p4Driver.cpp randomNumberMagnifier.o之后如何运行该文件?将生成p4Driver二进制文件/p4Driver/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../../../../../lib64/crt1.o:在函数
(u start'):(.text+0x20):对
main'randomNumberMagnier.o:在函数
randomNumberMagnier::randomNumberMagnier(bool,bool)':randomNumberMagnier.cpp:(.text+0x171)的未定义引用:对
randomNumberMagnifier::MAX_RANDOM'randomNumberMagnifier.o:在函数中
randomNumberMagnifier::randomNumberMagnifier(bool,bool)':randomNumberMagnifier.cpp:(.text+0x235):对
randomNumberMagnifier::MAX_RANDOM'collect2:ld的未定义引用返回1个退出状态找不到MAX_RANDOM?您的RandomNumberMagnier.h或.cpp是否依赖于其他文件而未包含它们?您是否将RandomNumberMagnier.cpp中的MAX_RANDOM初始化为int RandomNumberMagnier::MAX_RANDOM=0?执行此操作时,g++-o p4Driver p4Driver.cpp randomNumberMagnifier.o之后如何运行该文件?将生成p4Driver二进制文件/p4Driver./a.out:没有这样的文件或目录您介意解释一下我这样做之后如何运行该文件吗?使用:
/p4Driver
使用
-o
标志可以指定输出文件的名称。/a.out:没有这样的文件或目录您介意解释一下我这样做之后如何运行该文件吗
-o
标志用于指定输出文件的名称。