【发布时间】:2021-12-27 08:57:56
【问题描述】:
示例代码如下:
#include <cuda.h>
#include <cuda_runtime.h>
#include <stdio.h>
int main() {
unsigned char* cu_test;
cudaMalloc((void**)&cu_test, 3200);
CUdeviceptr pbase;
size_t psize;
CUresult res = cuMemGetAddressRange(&pbase, &psize, (CUdeviceptr)cu_test);
printf("cu_img_yuv size: %ld", psize);
return 0;
}
虽然在编译任何 cuda 版本时都会引发错误(从 11.3 到 11.5 测试):
$ nvcc main.cu -o main
/tmp/tmpxft_0000e288_00000000-11_main.o: In function `main':
tmpxft_0000e288_00000000-6_main.cudafe1.cpp:(.text+0x54): undefined reference to `cuMemGetAddressRange_v2'
collect2: error: ld returned 1 exit status
有人可以帮忙指出问题所在吗?
【问题讨论】:
-
如果你使用驱动API,你必须显式链接驱动API库
-
@talonmies 酷!通过
nvcc main.cu -lcuda -o main编译时添加了-lcuda,现在可以了! -
太棒了。请将其添加为您的问题的答案