MPIを使用してC++で記述された他のプロジェクト用のcudaプラグインを作成したいと思います。次のような状況になりました。
- startpoint.cppは、cudaintegrator.hを含むc ++ファイルであり、datastructure.hを含みます。
- cudaintegrator.hは、datastructure.hを含むcudaファイルのヘッダーファイルです。
- cudaintegrator.cppは、cudaintegrator.hの実装です。
- datastructure.hは、いくつかのデータ構造を指定するヘッダーファイルです。
ファイルは次のように編成されています。
/trunk/
/src
/folder1
/folder2
/startingpoint.cpp
/folder3
/cudaintegrator.h
/cudaintegrator.cpp
/folder4
/folder5
/datastructure.h
nvcc
次のコマンドを使用してトランクディレクトリから実行する場合:
/usr/local/cuda/bin/nvcc -c -o src/folder1/folder3/cudaintegrator.o src/folder1/folder3/cudaintegrator.cu
インクルードされたファイル`#include"folder4 / folder5 /datastructure.h"が見つかりません:
src/folder1/folder2/cudaintegrator.h:12:33: fatal error: folder4/folder5/datastructure.h: No such file or directory
同じインクルードを使用するmpic++
のコンパイルを実行すると、が見つかります。startingpoint.cpp
datastructure.h
nvccとmpic++の作業ディレクトリは、どちらもトランクディレクトリから実行されていても、どういうわけか違う(?)のではないかと思います。インクルードをファイル自体に変更する../../folder4/folder5/datastructure.h
と見つかりますが、同じ理由で後続のインクルードが失敗します。この場合、で見つけることができないため、後続のすべてのファイルのインクルードを変更することはできませんmpic++
。nvcc
この状況でファイルを正しく含める方法、または含まれているファイルを見つけるように指示する方法について誰かが提案していますか?