Пытаюсь подключить библиотеку
Возникает куча ошибок
tmpxft_00000e76_00000000-1_1.cudafe1.cpp:(.text+0x21): undefined reference to `cudaMalloc'
tmpxft_00000e76_00000000-1_1.cudafe1.cpp:(.text+0x7b): undefined reference to `cudaConfigureCall'
tmpxft_00000e76_00000000-1_1.cudafe1.cpp:(.text+0xab): undefined reference to `cudaMemcpy'
tmpxft_00000e76_00000000-1_1.cudafe1.cpp:(.text+0xb7): undefined reference to `cudaFree'
a.a(tmpxft_00000e76_00000000-13_1.o): In function `__cudaUnregisterBinaryUtil()':
tmpxft_00000e76_00000000-1_1.cudafe1.cpp:(.text+0x11c): undefined reference to `__cudaUnregisterFatBinary'
a.a(tmpxft_00000e76_00000000-13_1.o): In function `__device_stub__Z6kernelPf(float*)':
tmpxft_00000e76_00000000-1_1.cudafe1.cpp:(.text+0x1226): undefined reference to `cudaSetupArgument'
a.a(tmpxft_00000e76_00000000-13_1.o): In function `__sti____cudaRegisterAll_36_tmpxft_00000e76_00000000_4_1_cpp1_ii_146421d2()':
tmpxft_00000e76_00000000-1_1.cudafe1.cpp:(.text+0x127a): undefined reference to `__cudaRegisterFatBinary'
tmpxft_00000e76_00000000-1_1.cudafe1.cpp:(.text+0x12db): undefined reference to `__cudaRegisterFunction'
a.a(tmpxft_00000e76_00000000-13_1.o): In function `cudaError cudaLaunch<char>(char*)':
tmpxft_00000e76_00000000-1_1.cudafe1.cpp:(.text._Z10cudaLaunchIcE9cudaErrorPT_[cudaError cudaLaunch<char>(char*)]+0x14): undefined reference to `cudaLaunch'
collect2: ld returned 1 exit status
make: *** [untitled] Ошибка 1
Процесс «/usr/bin/make» завершился с кодом 2.
Возникла ошибка при сборке проекта untitled (цель: Desktop)
Во время выполнения сборки на этапе «Сборка»
Файл 1.cu (библиотека)
#include <stdio.h>
#include "1.h"
#define N (1024*1024)
__global__ void kernel ( float * data )
{
int idx = blockIdx.x * blockDim.x + threadIdx.x;
float x = 2.0f * 3.1415926f * (float) idx / (float) N;
data [idx] = sinf ( sqrtf ( x ) );
}
int foo ()
{
float a [N];
float * dev = NULL;
cudaMalloc ( (void**)&dev, N * sizeof ( float ) );
kernel<<<dim3((N/512),1), dim3(512,1)>>> ( dev );
cudaMemcpy ( a, dev, N * sizeof ( float ), cudaMemcpyDeviceToHost );
cudaFree( dev );
for (int idx = 0; idx < N; idx++)
printf("a[%d] = %.5f\n", idx, a[idx]);
return 0;
}
хэдер файл 1.h
библиотеку делаю командой
Я так понимаю в эту библиотеку не включаются все вспомогательные компоненты (другие библиотеки), можно ли их как нибудь автоматически включить? Или нужно вылавливать каждую и руками добавлять к моей конечной библиотеке? И если руками, то как? (покажите пример добавление одной такой библиотеки и как ее найти)
Понимаю вопрос не совсем по Qt, но русских форумов по CUDA не нашел.