2016-06-21 3 views
2

Cでウェーブレット処理をしていて、幸いにもGSL-2.1が見つかりました。私は、のCode Composer StudioでARMのCortex-Mプロセッサ用GSL-2.1のインタフェースにしようとしていますだけでなく、エネルギア15.コードであっても、このコードをARM Cortex M Procssor GNUサイエンティフィックライブラリコンパイルエラー

#include <stdio.h> 
#include <math.h> 
#include <gsl/gsl_errno.h> 
#include <gsl/gsl_vector.h> 
#include <gsl/gsl_blas.h> 
#include <gsl/gsl_test.h> 
#include <gsl/gsl_wavelet.h> 
#include <gsl/gsl_wavelet2d.h> 


int i, n=256, nc=20; 
double data[256]; 
double abscoeff[256]; 
gsl_wavelet *w; 
gsl_wavelet_workspace *work; 

int main(){ 
w = gsl_wavelet_alloc (gsl_wavelet_daubechies, 4); 
work = gsl_wavelet_workspace_alloc(256); 

} 

非常に簡単です、コンパイラは

エネルギア15に次のエラーを与えています
error: 'w' does not name a type 
error: 'work' does not name a type 

とのCode Composer Studioは、私はすでにそれhereを求め、コードにいくつかの変更を実行しようとしました

undefined     first referenced 
symbol       in file  
---------     ---------------- 
gsl_wavelet_alloc   ./main.obj  
gsl_wavelet_daubechies  ./main.obj  
gsl_wavelet_workspace_alloc ./main.obj 

error #10234-D: unresolved symbols remain 

次のエラーを示しています。 #errorsを減らすために、ほぼ5つのcファイルを追加しなければならなかった。今私は1つだけのエラーを取得しています

" RETURN_IF_NULL undef symbol first referenced in ./main.obj " 

ここで1つ以上の.cファイルを追加する必要がありますが、私は失われています。ここに追加する必要があるファイルを教えてください。 ヘルプが表示されます。

+0

'RETURN_IF_NULL'はマクロのように聞こえる、つまりヘッダーに問題があります。 – unwind

+0

ご返信ありがとうございます。これは、メモリを解放したり、ポインタがNULLポインタでないかどうかをチェックするために、ほぼ100ファイルのGSL-2.1で呼び出される関数です。サンプルコードは以下の通りです RETURN_IF_NULL(p); 空き(p->範囲); 空き(p->合計); 無料(p); ソースファイルが見つかりませんでした。 – Stark

+0

gsl 'config.h'に' return_if_null'がありますが、次のように定義されています: '#define RETURN_IF_NULL(x)if(!x){return; } ' –

答えて

1

documentationを読んで、 がconfigure.acの情報を使用して、autoconfのツールによって作成されている必要があることを欠落しているマクロ(RETURN_IF_NULL(x) if (!x) { return ; })があるように思われ、この中のように、config.hファイルに追加config.h。ソースコードで

は、ファイルconfigure.acでは、ディレクティブがあります:

あなたが ./configureを実行した後に作成されたファイルconfig.hのの末尾にマクロを追加するにautoconfを指示
AH_BOTTOM([#define RETURN_IF_NULL(x) if (!x) { return ; } 
]) 

スクリプト(OSX 10.10、gsl-2.1でテスト済み)。

設定中に何か問題が発生したと思います。すでにGSLのディレクトリを含めるのconfigファイルを持っているなら、あなたは一番最後に追加することができます。

RETURN_IF_NULL(x) if (!x) { return ; } 

をそれとも、それを作成し、ソースファイルに含めることができます。

関連する問題