UHD выдает ошибку компоновщика во FreeBSD

Я нахожусь на freebsd и пытаюсь запустить uhd с: http://www.ettus.com/download Обычно он запускается под freebsd, но я сталкиваюсь с проблемами, когда пытаюсь собрать его, как указано здесь: http://www.ettus.com/uhd_docs/manual/html/build.html

Я получил:

[ 73%] Building CXX object examples/CMakeFiles/benchmark_rx_rate.dir/benchmark_rx_rate.cpp.o
Linking CXX executable benchmark_rx_rate
../lib/libuhd.so.003.000: undefined reference to `uhd::set_thread_priority(float, bool)'
collect2: ld returned 1 exit status
 *** Error code 1

Теперь это похоже на ошибку компоновщика, но как от нее избавиться? Я попытался установить путь с помощью ldconfig, но это ничего не изменило. Может быть, у некоторых из вас есть идея, где я мог бы продолжить поиск.

2 ответа

Это идеальная ситуация для создания порта FreeBSD. Поскольку FreeBSD имеет собственную согласованную разметку файловой системы, флаги компилятора и компоновщика часто необходимо слегка модифицировать (как отмечает arrowdodger).

Система портов является основой для постоянного отслеживания этих изменений конфигурации и упрощения установки любого пакета программного обеспечения, например ввода команд:

cd / usr / ports /category / application-name && make install clean

В идеальном мире вы должны создать UHD-порт, отправить его на проверку и добавить в дерево. Если вам нужна помощь, чтобы узнать, как это сделать, справочник FreeBSD по созданию портов и список рассылки freebsd-ports являются отличными ресурсами.

Если я правильно понял, libuhd get построен ранее этим сценарием CMake. Если это правда, эта ошибка указывает на ошибку в их файлах CMakeLists.txt. Похоже, вы создаете примеры использования libuhd. Я сомневаюсь, что они вам нужны. Так что, либо найдите переключатели в вашем CMakeCache.txt и сгенерируйте Makefiles, либо взломайте CMakeLists.txt, чтобы не включать примеры dir.

Еще одна вещь, которую вы можете попробовать - установить CMAKE_EXE_LINKER_FLAGS в -L/usr/local/include.

Другие вопросы по тегам