2012-04-16 21 views
0

私は、次のファイル構造を持つこのプロジェクトがあります。C Makefileの未定義参照

 
|-- CG.cu 
|-- Makefile 
|-- examples 
| |-- ex2.h 
| |-- ex3.h 
| |-- mmio.c 
| |-- mmio.h 
| |-- nos4.mtx 
|-- util.h 

がCG.cuは(ソルバー共役勾配)私のメインプログラムである私は、util.hにいくつかのヘルプ機能を持っていますex2.hex3.h(これは悪い習慣だとわかっていますが、今は大丈夫です)ex3.hにはmmio.c、mmio.hが必要ですこの例では、nos4.mtxをロードします。

CG.cu - > ex3.h - > mmio.h(mmio.c) コンパイラ(後でcudaに移植されるNVCC)は、mmio関数の未定義の参照について不平を言っています。

現在、私のMakefileは次のようになります。

main: CG.cu util.h 
     NVCC -o main CG.cu 

とGC.cuは#include "examples/ex3.h"を使用し、ex3.hは#include "mmio.h"

を使用して、あなたは私を助けることができますか?

+1

あなたの質問に正確なエラーを追加してください。 –

答えて

0

最初にmmio.cをコンパイルし、CG.cuを結果のオブジェクトファイルにリンクする必要があります。あなたは1つのステップでそれを行うこともできます:

mian: CG.cu util.h NVCC -o main CG.cu mmio.c