Неопределенная ссылка на `nppiMalloc_8u_C1'
Я пытаюсь запустить программу на Ubuntu 16.04, используя библиотеку npp. Чтобы связать библиотеку и программу, я написал эту команду на терминале:
nvcc -L/home/usr/local/cuda-9.0/targets/x86_64-linux/lib main.cu
Однако эта ошибка возникает:
/tmp/tmpxft_000048ee_00000000-10_main.o: In function `main':
tmpxft_000048ee_00000000-5_main.cudafe1.cpp:(.text+0xaf): undefined reference to `nppiMalloc_8u_C1'
tmpxft_000048ee_00000000-5_main.cudafe1.cpp:(.text+0xc6): undefined reference to `nppiMalloc_8u_C1'
tmpxft_000048ee_00000000-5_main.cudafe1.cpp:(.text+0x16f): undefined reference to `nppiMinMaxGetBufferHostSize_8u_C1R'
tmpxft_000048ee_00000000-5_main.cudafe1.cpp:(.text+0x1a9): undefined reference to `nppiMinMax_8u_C1R'
tmpxft_000048ee_00000000-5_main.cudafe1.cpp:(.text+0x20a): undefined reference to `nppiSubC_8u_C1RSfs'
tmpxft_000048ee_00000000-5_main.cudafe1.cpp:(.text+0x2c9): undefined reference to `nppiMulC_8u_C1IRSfs'
tmpxft_000048ee_00000000-5_main.cudafe1.cpp:(.text+0x3a4): undefined reference to `nppiFree'
tmpxft_000048ee_00000000-5_main.cudafe1.cpp:(.text+0x3b0): undefined reference to `nppiFree'
tmpxft_000048ee_00000000-5_main.cudafe1.cpp:(.text+0x3c8): undefined reference to `nppiFree'
tmpxft_000048ee_00000000-5_main.cudafe1.cpp:(.text+0x3d4): undefined reference to `nppiFree'
collect2: error: ld returned 1 exit status
Я не нашел ничего в Интернете, и я новичок в программировании GPU.
Есть идея, как я могу решить проблему, пожалуйста?
1 ответ
nvcc
только ссылки cudart
библиотека по умолчанию. Если вы хотите использовать любую другую библиотеку, включенную в инструментарий, такой как NPP
Вы должны явно связать соответствующие библиотеки следующим образом:
nvcc -L / home / usr / local / cuda-9.0 / target /x86_64-linux/lib main.cu -lnppc -lnppi -lnppial