【发布时间】:2012-08-22 11:20:18
【问题描述】:
我想为另一个使用 MPI 用 C++ 编写的项目构建一个 cuda 插件。 我遇到了以下情况:
- startingpoint.cpp 是一个 c++ 文件,包括 cudaintegrator.h 和 包括数据结构.h
- cudaintegrator.h 是一个头文件 cuda 文件,包括 datastructure.h
- 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 找到包含的文件?
【问题讨论】:
标签: c++ cuda compiler-errors