Cuda 5.0 Проблема с ссылками
Я просто пытаюсь создать мой старый проект, используя предварительный просмотр cuda 5.0. При связывании я получаю сообщение об ошибке, сообщающее, что некоторые функции cuda не могут быть найдены. Например:
undefined reference to 'cudaMalloc'
.
Моя команда связывания включает в себя следующие параметры для cuda:
-L/usr/local/cuda/lib64 -L/home/myhome/NVIDIA_CUDA_Samples/C/lib -L/home/myhome/NVIDIA_CUDA_Samples/C/common/lib/linux -lcudart
ls -lah /usr/local/cuda/lib64/
дает мне 8 библиотек cuda, включая libcudart.so.5.0.7 с символическими ссылками, использующими только .so-file-окончание.
ls /home/myhome/NVIDIA_CUDA_Samples/C/lib/
дает мне пустой каталог, что довольно странно?
ls /home/myhome/NVIDIA_CUDA_Samples/C/common/lib/linux/
дает мне две директории: i686 и x86_64, каждая из которых содержит только libGLEW.a
Я понятия не имею, какой способ искать решение. Любая помощь приветствуется!
РЕДАКТИРОВАТЬ:
Вот моя полная команда компоновки (TARGET_APPLICATION - это мой двоичный файл, а x86_64 / Objectfiles.o обозначает все (23) объектные файлы, включая объектный файл, скомпилированный с помощью nvcc):
/home/myhome/nullmpi-0.7/bin/mpicxx -CC=g++ -I. -I/home/myhome/nullmpi-0.7/src -I/usr/lib/openmpi/include -L/usr/local/cuda/lib64 -L/home/myhome/NVIDIA_CUDA_Samples/C/lib -L/home/myhome/NVIDIA_CUDA_Samples/C/common/lib/linux -lcudart -o TARGET_APPLICATION x86_64/Objectfiles.o /usr/lib/liblapack.so /usr/lib/libblas.so /home/myhome/nullmpi-0.7/lib/libnullpmpi.a -lm
я используюnullmpi для компиляции и компоновки (проект использует MPI и CUDA), который внутренне используетg++
как видно по-CC=g++
Я хотел не пускать этот материал.
Команда компиляции для моего объектного файла cuda:
/usr/local/cuda/bin/nvcc -c -arch=sm_21 -L/home/myhome/NVIDIA_CUDA_Samples/C/lib -O3 kernelwrapper.cu -o x86_64/kernelwrapper.RELEASE.2.o
echo $LD_LIBRARY_PATH
результаты в:
/usr/local/cuda/lib64:/usr/local/cuda/lib:
echo $PATH
результаты в:
otherOptions:/usr/local/cuda/bin:/home/myhome/nullmpi-0.7/bin
Я строю 64-битную версию. Ради полноты я строю на Ubuntu 12.04. (64-битный). Building the CUDA Samples works fine.
SOLUTION (спасибо talonmies за указание на это):
Это правильная команда связывания:
/home/myhome/nullmpi-0.7/bin/mpicxx -CC=g++ -I. -I/home/myhome/nullmpi-0.7/src -I/usr/lib/openmpi/include -L/usr/local/cuda/lib64 -L/home/myhome/NVIDIA_CUDA_Samples/C/lib -L/home/myhome/NVIDIA_CUDA_Samples/C/common/lib/linux -o TARGET_APPLICATION x86_64/Objectfiles.o /usr/lib/liblapack.so /usr/lib/libblas.so /home/myhome/nullmpi-0.7/lib/libnullpmpi.a -lcudart -lm