gpt4 book ai didi

c++ - cuda header 包含失败

转载 作者:行者123 更新时间:2023-11-28 00:54:49 25 4
gpt4 key购买 nike

我想为另一个使用 MPI 用 C++ 编写的项目构建一个 cuda 插件。我得到以下情况:

  • startingpoint.cpp 是一个包含 cudaintegrator.h 和包括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 找到包含的文件?

最佳答案

为 nvcc 调用提供包含路径 (-I) 应该就足够了(如果没有,它仅使用相对包含路径,这就是添加 ../.. 的原因适用于单个包含)。

关于c++ - cuda header 包含失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12071947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com