次のファイル構造を持つこのプロジェクトがあります。
|-- CG.cu |-- Makefile |-- 例 | | |-- ex2.h | | |-- ex3.h | | |-- mmio.c | | |-- mmio.h | | |-- nos4.mtx |-- ユーティリティ.h
CG.cuは私のメイン プログラム (共役勾配ソルバー) です。util.h にはいくつかのヘルプ関数があり、ex2.hとex3.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"
手伝って頂けますか?