似乎无法使错误消失。错误如下。我已经看过Google了,但仍然想不起来。并不是我不是Cpp的新手,但有一段时间没有被它弄糊涂了。奇怪的是它与Windows中的G ++一起使用...错误:[ze @ fed0r!- - - ** _ _ *] $ G ++的main.cpp/tmp/ccJL2ZHE.o:在函数“ main”中:main.cpp :(。text + 0x11):对`Help :: Help()的未定义引用main.cpp :(。text + 0x1d):对'Help :: sayName()'的未定义引用main.cpp :(。text + 0x2e):对`Help ::〜Help()'的未定义引用main.cpp :(。text + 0x46):未定义对`Help ::〜Help()'的引用collect2:ld返回1退出状态main.cpp#include <iostream>#include "Help.h"using namespace std;int main () { Help h; h.sayName(); // *** // *** // *** return 0;}帮助#ifndef HELP_H#define HELP_Hclass Help { public: Help(); ~Help(); void sayName(); protected: private:};#endif // HELP_H帮助文件#include <iostream>#include "Help.h"using namespace std;Help::Help() { // Constructor}Help::~Help() { // Destructor}void Help::sayName() { cout << " ***************" << endl; cout << " ************************************" << endl; cout << " ************" << endl; cout << " *********************" << endl;}标签c ++ g ++
3 回答
蝴蝶不菲
TA贡献1810条经验 获得超4个赞
您应该将help.o添加到您的g ++行中:
g++ -c help.cpp -o help.o
g++ help.o main.cpp
通过将其分为两行,可以节省编译时间(对于大型项目),因为您help.cpp只能在更改时进行编译。make并且Makefile使用得好会为您节省很多头痛:
#Makefile
all: main
main: help main.cpp
g++ -o main help.o main.cpp
help: help.cpp
g++ -c -o help.o help.cpp
繁星淼淼
TA贡献1775条经验 获得超11个赞
我的Linux Lubuntu发行版遇到了同样的问题,它为我的构造函数,析构函数创建了问题,但无法识别它们。
实际上,如果仅将三个文件全部一起编译,则此操作不可用。因此,保存所有文件后,只需执行以下操作:
$ g++ main.cpp Help.h Help.cpp
$ ./a.out
./a.out是Linux的可执行文件,很抱歉,我对Windows不了解。并且您的程序将顺利运行。
- 3 回答
- 0 关注
- 1069 浏览
添加回答
举报
0/150
提交
取消