当我试图运行下面的C++程序:UPDATE(更新代码,因为过去的纽带有一些错误):http://pastie.org/private/pdpfpzg5fk7iegnohebtqUPDATE:C++未定义参考
我得到如下:
UPDATE
出现的现在如下错误:
对此有何看法?
谢谢。
当我试图运行下面的C++程序:UPDATE(更新代码,因为过去的纽带有一些错误):http://pastie.org/private/pdpfpzg5fk7iegnohebtqUPDATE:C++未定义参考
我得到如下:
UPDATE
出现的现在如下错误:
对此有何看法?
谢谢。
你不是在GradeBook.o链接使你得到一个undefefined参考。 尝试
g++ GradeBookMain.cc GradeBook.cc -o GradeBookMain
您还在GradeBook.h
引用一个我最喜欢的IRC机器人:未定义的引用是链接器错误。这不是编译错误。 #包括没有帮助。您没有在错误消息中定义事件,您忘记链接定义它的文件,忘记链接到定义它的库,或者如果它是静态库,则链接器命令行上的顺序不正确。检查哪一个。
你没有告诉你的编译器在哪里可以找到GradeBook
构造函数定义(因此是“未定义的引用”)。您需要将所有源文件分别传递给编译器,或者为所有编译单元创建中间目标文件,并将它们链接在一起。
有效,最简单的方法是这样的:
g++ GradeBookMain.cc GradeBook.cc -o GradeBookMain
C++有一个错字 “maximun”,而不是 “最大” 是区分大小写的。因此,例如,您可以显示消息,但您定义的是DisplayMessage。这是两个截然不同的功能。您应该将DisplayMessage的定义更改为displayMessage,或者将其称为DisplayMessage而不是displayMessage
您还需要在GradeBook.cc中进行编译。
目前类本身没有被编译或链接,因此,链接器无法找到GradeBook类 - 导致它抱怨。
你的编译器告诉你的是,GradeBook类是定义的,并且在编译阶段一切正常,但是当需要链接完整的可执行程序时,它无法找到该类的实际代码。这是因为您只编译和链接GradeBookMain.cc而不是GradeBook.cc。您可以编译,并在同一时间这样的链接他们两个:
g++ GradeBookMain.cc GradeBook.cc -o program
或者你可以单独编译它们,然后连结在一起,
g++ -c GradeBookMain.cc -o GradeBookMain.o
g++ -c GradeBook.cc -o GradeBook.o
g++ GradeBookMain.o GradeBook.o -o program
请添加某种形式的tabification到您的代码。现在阅读很痛苦。此外,您应该只能将GradeBook类定义和导致链接器错误的行添加到此问题中,从而避免潜在的答复者不必单击链接来获取有关该问题的更多信息。 – 2011-01-26 11:50:21
(1)请发布您的代码_here_。让我们难以找到并阅读你的代码是没有用的。 (2)复制和粘贴在计算机上无法正常工作?你有没有发布截图的原因? – 2011-01-26 11:50:33
@詹姆斯麦克奈利斯。只是没有想到在发布问题时粘贴在pastie上的屏幕截图。谢谢。 – Simplicity 2011-01-26 11:52:34