Linux下创建CUDA程序动态链接库示例

本文通过示例详细介绍了如何在Linux下创建CUDA程序动态链接库,使用g++编译deviceQuery.cpp并生成so文件,再通过gcc编译t.cpp并链接到动态库,最终实现调用CUDA库函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里我以SDK中自带的deviceQuery.cpp文件为里,利用t.cpp来调用其编译生成的动态链接库。

 

首先创建一个soTest的文件夹,里面有两个文件deviceQuery.cpp, t.cpp。

 

deviceQuery.cpp的代码可以参考CUDASDK t.cpp的源代码如下:

 

#include int cudev(int argc, char** argv);

int main(int argc, char ** argv)

{

   cudev(argc,argv); 

   return 0;

}

 

 然后在当前目录下输入以下命令:

 

1. g++ -W -Wall -Wimplicit -Wswitch -Wformat -Wchar-subscripts -Wparentheses -Wmultichar -Wtrigraphs -Wpointer-arith -Wcast-align -Wreturn-type -Wno-unused-function -fno-strict-aliasing -I. -I/usr/local/cuda/include -I/home/cuda/NVIDIA_GPU_Computing_SDK/C/common/inc -DUNIX -O2 -o deviceQuery.o -c deviceQuery.cpp

 

2. g++ -shared -Wl,-soname,libcudev.so.1 -o libcudev.so.1.0.0 deviceQuery.o -lc -I. -I/usr/local/cuda/include -I/home/cuda/NVIDIA_GPU_Computing_SDK/C/common/inc -L/usr/local/cuda/lib -L/home/cuda/NVIDIA_GPU_Computing_SDK/C/lib -L/home/cuda/NVIDIA_GPU_Computing_SDK/C/common/lib/linux -lcudart -L/usr/local/cuda/lib -L/home/cuda/NVIDIA_GPU_Computing_SDK/C/lib -L/home/cuda/NVIDIA_GPU_Computing_SDK/C/common/lib/linux -lcutil

 

3. gcc -Wall -o t.o -c t.c

 

4. ln -sf libcudev.so.1.0.0 libcudev.so

 

5. ln -sf libcudev.so.1.0.0 libcudev.so.1

 

6. gcc -Wall -L. -o t t.o -lcudev

 

这样执行 ./t 就可以顺利调用deviceQuery.cpp中的函数了^_^

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值