Makefile里面发现不了什么的。nvcc是个driver,这个driver会预处理代码,cuda的代码自己编译,本机的代码交给本机编译器(g++)去编译。
看看nvcc指定库的参数应该就可以了。用nvcc去链接你的库,而不是GCC。
嗯。谢谢,我去仔细看看nvcc的参数说明。 ft,CUDA不支持C++的........ 你换C试试看 原帖由 prolj 于 2009-4-8 00:04 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
ft,CUDA不支持C++的........ 你换C试试看
我也看到说CUDA不支持C++。
但是现在在Linux下CUDA提供了cpp文件。
我目前对于.cu .cpp文件是这样来编译的:
nvcc -I /usr/local/cuda/include/ -I ../../common/inc/ -I /home/scutan/gpu/makef/ --compile matrixMul.cu -o b.o 针对.cu文件
g++ -I /usr/local/cuda/include/ -I ../../common/inc/ -c matrixMul_gold.cpp -o a.o 针对.cpp文件
g++ -fPIC -o a.out123 a.o b.o -L /usr/local/cuda/lib -L ../../common/lib/linux -L ../../lib/ -lcudart -lcutil 将两个obj链接起来
这样就可以生成可执行程序了。 原帖由 scutan 于 2009-4-8 00:15 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
我也看到说CUDA不支持C++。
但是现在在Linux下CUDA提供了cpp文件。
我目前对于.cu .cpp文件是这样来编译的:
nvcc -I /usr/local/cuda/include/ -I ../../common/inc/ -I /home/scutan/gpu/makef/ ...
哈哈,成功了。
在.cu文件中对自己的动态库中的函数声明时加上extern "C"前缀就可以了。
然后在最后一步链接时:
g++ -fPIC -o a.out123 a.o b.o -L /usr/local/cuda/lib -L ../../common/lib/linux -L ../../lib/ -lcudart -lcutil -lmyhello 将两个obj以及自己的动态链接库链接起来
ft......
-fPIC + extern "C" 就解决了 C++ 本帖最后由 wheel 于 2010-03-11 22:37 编辑
前来围观
http://www.nvidia.cn/object/cuda_get_cn.html
http://www.nvidia.cn/object/cuda_programming_tools_cn.html 学习了。希望能看到一些比较数据,用CUDA到底有多大好处?
页:
1
[2]