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();

フォーラムでは、これとCudaでのCImgの使用に関する多くの助けを見つけることができません..cudaでCImgを使用する方法はありますか..

ありがとう

4

1 に答える 1

1

私の提案は、CImg を使用するコードを .cpp ファイルに移動することです。.cpp ファイルのコードは、.cu ファイルのホスト/デバイス コードを呼び出します。次に、.cu ファイル内のコードは、float の行列へのポインタまたは参照を .cpp ファイル内のコードに返します。

Nvidia の nvcc はコンパイラ ドライバです。C/C++ コンパイラを呼び出して、.c または .cpp ファイル名のファイルをコンパイルします。ただし、.cu ファイルは nvcc にとって特別な意味を持ちます。カーネル関数と特定の #pragma を検索するために、いくつかの解析とその他の処理を行います。私は専門家ではありませんが、マニュアルのコピーがあちこちにあることは知っています。これは、マニュアルの古いコピーへのリンクです。

于 2011-07-30T04:32:57.287 に答える