2013-04-24 101 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

相關問題