Как я могу исправить эту ошибку, которую делает luarocks при компиляции локального пакета torch7?

Я пытаюсь собрать пакет, написанный на torch7(C,cuda,lua) из github spectral-lib(Ubuntu 14.04, cuda 7.0, установлен torch7). Я использую эту команду для его создания: luarocks make --local.

Однако возникли странные ошибки, как показано ниже:

...
Scanning dependencies of target spectralnet
[100%] Building CXX object CMakeFiles/spectralnet.dir/cuda/cufft.cpp.o
Linking CXX shared module libspectralnet.so
/usr/bin/ld: cannot find -lcufft
collect2: error: ld returned 1 exit status
make[2]: *** [libspectralnet.so] Error 1
make[1]: *** [CMakeFiles/spectralnet.dir/all] Error 2
make: *** [all] Error 2

Я могу найти, что "libcufft.so" находится в /usr/local/cuda/lib64. Возможно, эта ошибка связана с файлом CMakeLists.txt, но я с ним не знаком. Может ли кто-нибудь дать мне руку?


person Gu Wang    schedule 13.03.2016    source источник
comment
У вас есть переменная среды LD_LIBRARY_PATH, настроенная на включение /usr/local/cuda/lib64?   -  person Nicolas Holthaus    schedule 13.03.2016
comment
Вы также можете проверить символическую ссылку libcufft.so и убедиться, что она ссылается на версию библиотеки cuda fft, которую вы фактически установили в lib64. Я видел, как он иногда ломался после обновления драйверов.   -  person Nicolas Holthaus    schedule 13.03.2016
comment
Мой LD_LIBRARY_PATH имеет /usr/local/cuda/lib64. Во всяком случае, я решил эту проблему, изменив файл CMakeLists.txt. Авторский CMakeLists.txt у меня не работает.   -  person Gu Wang    schedule 13.03.2016
comment
Рад это слышать. вы должны опубликовать изменения, которые вы внесли в CMakeLists.txt, в качестве ответа на случай, если другие люди столкнутся с той же проблемой в будущем.   -  person Nicolas Holthaus    schedule 13.03.2016
comment
@NicolasHolthaus, спасибо за помощь!   -  person Gu Wang    schedule 13.03.2016


Ответы (1)


Решено путем изменения файла CMakeLists.txt. Я копирую libcufft.so в ./cuda и добавляю:

SET(PROJECT_LINK_LIBS libcufft.so )
LINK_DIRECTORIES(/net/wanggu/spectral-lib/cuda)

У автора CMakeLists.txt могут быть некоторые проблемы с направлениями динамических библиотек cuda. Возможно, существуют лучшие решения, но пока это временное решение.

person Gu Wang    schedule 13.03.2016