“未定义的引用”在G ++ Cpp中
似乎无法让错误消失。 错误如下。 我看过谷歌,仍然无法弄清楚。 这不像我是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;
}
g ++ main.cpp Help.cpp
你必须告诉编译器所有你想要它编译的文件,而不仅仅是第一个。
你应该添加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
链接地址: http://www.djcxy.com/p/51559.html