2015-03-03 233 views
0

剛接觸C++,並試圖使用我們的教授爲我們製作的一個文件,我無法使用它提供的任何函數,繼承了提供Undefined參考的代碼。我沒有包含函數實現,但它們又被提供了,所以它們是正確的。我正在使用代碼塊,所有三個文件都在我的源文件夾中。這是什麼造成的?未定義的參考C++?

#include <iostream> 

using namespace std; 
#include "random.h" 


int main() 
{ 

cout<< random_instance(6,2.5,1); 
return 0; 
} 

這是random.h

#ifndef RANDOM_H 
#define RANDOM_H 

#define TWO_PI 6.2831853071795864769252866 

double * random_instance(int length, const double mu, const double sigma = 1); 
double gaussian_rand(const double mu, const double sigma); 

#endif /* defined(RANDOM_H) */ 
+1

也是在random文件夾中的random.cpp? – 2015-03-03 01:51:19

+1

你是如何編譯它的?您可能會忘記編譯/鏈接您的教練提供的代碼。 – 2015-03-03 01:51:40

+0

是的,它們位於不同的文件夾中,如果重要的話,它們都位於sources文件夾中 – tokola 2015-03-03 01:54:03

回答

0

random_instance的定義缺失。

你或許應該編譯和鏈接random.cpp也應包含在random.h聲明的函數的定義,也許是這樣的:

g++ path/to/main.cpp path/to/random.cpp 

代碼::塊有可能是部分地方在那裏你可以選擇要編譯和鏈接的文件。