很抱歉,如果这是一个重复的问题。 我有eclipse juno,cdt在ubuntu。一个有效的hello world autotools项目。现在我想在另一个文件中使用一个函数,所以我创建了一个one.h和one.cpp并修改了main_hello.cpp:
main_hello.cpp:
#include <iostream>
#include "one.h"
using namespace std;
int main(void) {
cout << "Hello World" << endl;
onehello();
return 0;
}
one.h:
#ifndef ONE_H_
#define ONE_H_
void onehello(void);
#endif /* ONE_H_ */
one.cpp:
#include "one.h"
#include <iostream>
using namespace std;
void onehello(void) {
cout << "Hello one" << endl;
}
当我构建它时,我得到一个“未定义的引用`onehello()”。如果我在one.h中定义函数而不是one.cpp,它可以工作。 我做错了什么?
谢谢!
答案 0 :(得分:1)
将one.cpp添加到src / Makefile.am:
该文件中应该是以下行:
some_name_SOURCES = main_hello.cpp
所以,添加one.cpp:
some_name_SOURCES = main_hello.cpp one.cpp