NFFT Неопределенная ссылка на функции NNFFT
Поэтому я пытаюсь установить пакет NFFT3 с https://www-user.tu-chemnitz.de/~potts/nfft/.
Казалось, что все в порядке, используя стандартные команды configure, make, make install. Однако я получаю ошибку:
simple_test.o: In function 'simple_test_nnfft_1d':
simple_test.c:(.text+0x44): undefined reference to 'nnfft_init'
simple_test.c:(.text+0xd6): undefined reference to 'nnfft_precompute_one_psi'
simple_test.c:(.text+0x158): undefined reference to 'nnfft_trafo_direct'
simple_test.c:(.text+0x17d): undefined reference to 'nnfft_trafo'
simple_test.c:(.text+0x19d): undefined reference to 'nnfft_finalize'`
Дело в том, что файл simple_test.c
для штатного NFFT работает просто отлично. Кто-нибудь знает, как это исправить? Я знаю, что это какая-то проблема с компоновкой, но программное обеспечение настолько велико, что я не могу решить, как ее исправить.
Спасибо
Редактировать: Таким образом, в каталоге kernel / nnfft есть nnfft.c со всеми необходимыми функциями, но по-прежнему нет заголовочного файла. Кто-нибудь знает, где на самом деле находится заголовок с этими объявлениями? Я включил файл nnfft.c вверху тестового кода и получил его для компиляции, но это не помогло с проблемой первоначальной компоновки.
2 ответа
Это потому, что модуль NNFFT не компилируется по умолчанию.
Вы должны добавить опцию --enable-nnfft
сделать это при настройке:
./configure --enable-nnfft
Первый забег ldconfig
кэшировать библиотеку. Затем запустите GCC с -lnfft3
,