1

我正在 VS2008,Win 7 上的 CUDA C 中编写代码。我得到了一个浮点矩阵,它将显示为图像..我将其保存为 .bin 文件并将其加载到单独的 .cpp 文件中并成功形成使用 CImg 库的图像...但是,当我尝试将类似的代码添加到 .cu 文件时,它会给出一个奇怪的错误,如下所示在编译...

 error: identifier "_ZN12cimg_library4cimg9superset2IfffE4typeE" is undefined

我尝试在 .cu 文件中添加的代码片段如下所示

#include <CImg.h>
using namespace cimg_library;
....host code.....continues...

CImg<float> img1(448,448); 
for (int nn=0;nn<200704;nn++)
img1[nn] = dR[nn];    // dR is obtained after cudamemcpy DtoH
img1.display();

在论坛上,我找不到太多关于此以及将 CImg 与 Cuda 一起使用的帮助。有什么办法可以将 CImg 与 cuda 一起使用。

谢谢

4

1 回答 1

1

我的建议是将使用 CImg 的代码移动到 .cpp 文件中。然后,.cpp 文件中的代码将调用 .cu 文件中的主机/设备代码。然后,.cu 文件中的代码将指针或对浮点矩阵的引用返回给 .cpp 文件中的代码。

Nvidia 的 nvcc 是一个编译器驱动程序。它调用 C/C++ 编译器来编译具有 .c 或 .cpp 文件名的文件。但是,.cu 文件对 nvcc 具有特殊意义。它会进行一些解析以及寻找内核函数和某些#pragmas 的内容。我不是专家,但我知道周围有一本手册。这是该手册旧版本的链接

于 2011-07-30T04:32:57.287 回答