我想为使用MPI用C ++编写的其他项目构建一个cuda插件。 我遇到以下情况:
文件的组织方式如下:
/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 ++的工作目录在某种程度上是不同的(?),甚至两者都是从trunk目录运行的。
当我将include更改为../../folder4/folder5/datastructure.h
时,找到了文件本身,但后续包含失败的原因相同。我无法更改所有后续文件中的包含,因为在这种情况下mpic++
无法找到它们。
有没有人建议我应该如何正确地包含这种情况下的文件,或者如何指示nvcc
查找包含的文件?
答案 0 :(得分:3)
为nvcc调用提供包含路径(-I
)应该足够了(如果没有,它只使用相对包含路径,这就是为什么添加../..
适用于单个包含的原因。)