2013-04-24 86 views
-1

对不起,如果这是一个重复的问题。 我有eclipse juno,在Ubuntu的CDT。 hello world autotools项目的工作。现在我想用另一个文件中的功能,所以,我创建了一个one.h和one.cpp和修改main_hello.cpp:在eclipse中包含一个新文件在C++中cdt

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

您需要将'one.cpp'作为源文件添加到'makefile'中。 – lapk 2013-04-24 11:32:35

回答

1

one.cpp添加为src/Makefile.am:

它应该在这个文件中的下面一行:

some_name_SOURCES = main_hello.cpp

所以,加one.cpp:

some_name_SOURCES = main_hello.cpp one.cpp

+0

好吧,做到了,现在我明白了。没有规则使目标'main_hello.cpp,one.o'。还有什么我需要改变? – Katu 2013-04-24 11:48:45

+0

我的印记错误,空格应该用逗号代替:some_name_SOURCES = main_hello.cpp one.cpp。 – NMI 2013-04-24 12:43:31

+0

甜蜜:)非常感谢答复和更正。 – Katu 2013-04-24 12:57:18