谁能告诉我如何编译在CUDA-NPP示例代码站点上找到的boxFilter程序?‘'make’给出了一个关于common_npplib.mk的错误--我没有找到common_npplib.mk,但它包含在makefile中。不管怎么说,我试过了:
g++ -I../../common/UtilNPP -I../../../shared/inc -I../../common/FreeImage -I/usr/global/cuda/4.0/cuda/include -L/usr/global/cuda/4.0/cuda/lib64 -L../../common/FreeImage/lib/linux -L../../../shared/lib -lnpp -lcudart -lUtilNPP_x86_64 -lfreeimage64 -o bf boxFilterNPP.cpp这又会导致错误。它找不到-lUtilNPP_x86_64和-lfreeimage64。没有这两个的编译会给出很多错误,比如对npp::Image::Image()的引用未定义等。需要尽快帮助,谢谢!
发布于 2012-02-07 10:31:08
我已经复制了你发现的错误。我假设你下载了个人boxFilter sample。
该归档文件肯定缺少common_npplib.mk。我会将此错误报告给CUDA SDK团队并进行更正。同时,我认为如果你下载整个SDK而不是单独的示例,你会有更好的编译机会。
访问http://developer.nvidia.com/cuda-toolkit-41并查找"GPU Computing SDK Downloads",然后下载适合您的操作系统的软件。我建议您在直接转到boxFilter并输入make之前,按照自述文件中的说明构建示例--这可能取决于首先构建一些实用程序库。
发布于 2012-02-10 21:25:04
我下载了您提到的tarball,首先构建静态UtilNPP库。您需要在适当的目录中编辑CUDA_INSTALL_PATH变量,例如,defines.mk的第45-47行:
#ifdef cuda-install
CUDA_INSTALL_PATH := /usr/global/cuda/4.1/cuda
#endif然后,我从包含源代码的目录中编写了以下构建脚本:
module load cuda/4.1
shlib="-L/usr/global/cuda/4.1/cuda/lib64/ -lnpp"
inc="-I../../common/UtilNPP -I../../common/FreeImage/include -I../../../shared/inc -I/usr/global/cuda/4.1/cuda/include/"
stlib="../../common/lib/libUtilNPP_x86_64.a ../../common/FreeImage/lib/linux /libfreeimage64.a"
nvcc $inc $stlib $shlib boxFilterNPP.cpp -o foo.x./foo.x运行得很好;您当然需要更改cuda安装路径以适合您的安装,如果您不使用模块系统,请确保您的LD_LIBRARY_PATH是正确的等希望这会有所帮助
https://stackoverflow.com/questions/9169147
复制相似问题