0

次のファイル構造を持つこのプロジェクトがあります。

|-- CG.cu  
|-- Makefile  
|-- 例  
| | |-- ex2.h  
| | |-- ex3.h  
| | |-- mmio.c  
| | |-- mmio.h  
| | |-- nos4.mtx  
|-- ユーティリティ.h  

CG.cuは私のメイン プログラム (共役勾配ソルバー) です。util.h にはいくつかのヘルプ関数があり、ex2.hex3.hにはいくつかのハードコーディングされた例があります(悪い習慣だとわかっていますが、今のところは問題ありません) 問題は、この例でex3.hが mmio.c、mmio.h、および nos4.mtx をロードする必要があることです。

したがって、基本的な流れは次のとおりです。 CG.cu -> ex3.h -> mmio.h (mmio.c) コンパイラ (NVCC : 後で cuda 用に移植) は、mmio 関数の未定義の参照について不平を言います。

現在、私の Makefile は次のようになっています。

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

および GC.cu は を使用し#include "examples/ex3.h"、ex3.h は使用します#include "mmio.h"

手伝って頂けますか?

4

1 に答える 1

0

最初に mmio.c をコンパイルしてから、作成したオブジェクト ファイルに CG.cu をリンクする必要があります。これも 1 ステップで実行できます。

mian: CG.cu util.h NVCC -o main CG.cu mmio.c
于 2012-04-16T06:20:01.373 に答える