似乎无法让错误消失。错误如下。我已经看过谷歌仍然无法搞清楚。这不像我是Cpp的新手,但有一段时间没有被它愚弄。
奇怪的是它在Windows中与G ++一起工作......
错误:
的main.cpp
#include <iostream>
#include "Help.h"
using namespace std;
int main () {
Help h;
h.sayName();
// ***
// ***
// ***
return 0;
}
Help.h
#ifndef HELP_H
#define HELP_H
class Help {
public:
Help();
~Help();
void sayName();
protected:
private:
};
#endif // HELP_H
Help.cpp
#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;
}
答案 0 :(得分:15)
g ++ main.cpp Help.cpp
您必须告诉编译器您希望它编译的所有文件,而不仅仅是第一个。
答案 1 :(得分:8)
您应该将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
答案 2 :(得分:0)
我的Linux Lubuntu发行版遇到了同样的问题,它正在为我的构造函数destructor造成问题,它无法识别它们。
实际上,如果您只是将所有三个文件一起编译,则此操作将不可用。因此,一旦保存了所有文件,请执行以下操作:
$ g++ main.cpp Help.h Help.cpp
$ ./a.out
./ a.out是Linux的可执行文件,抱歉,我不知道Windows。这样您的程序就可以顺利运行。