scutan 发表于 2009-04-07 23:48

原帖由 prolj 于 2009-4-7 23:45 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
Makefile里面发现不了什么的。nvcc是个driver,这个driver会预处理代码,cuda的代码自己编译,本机的代码交给本机编译器(g++)去编译。
看看nvcc指定库的参数应该就可以了。用nvcc去链接你的库,而不是GCC。
嗯。谢谢,我去仔细看看nvcc的参数说明。

prolj 发表于 2009-04-08 00:04

ft,CUDA不支持C++的........ 你换C试试看

scutan 发表于 2009-04-08 00:15

原帖由 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-04-08 00:36

原帖由 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以及自己的动态链接库链接起来

prolj 发表于 2009-04-08 00:45

ft......
-fPIC + extern "C" 就解决了 C++

wheel 发表于 2010-03-11 22:27

本帖最后由 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

beepbug 发表于 2010-03-17 18:56

学习了。希望能看到一些比较数据,用CUDA到底有多大好处?
页: 1 [2]
查看完整版本: 请教有没有在Linux使用cuda的朋友