Настройка GNU Radio и UHD проекта с помощью Qt Creator - PullRequest
0 голосов
/ 18 октября 2019

В настоящее время я реализую графический интерфейс для очень маленького приложения GNU Radio. Приложение просто подключится к устройству USRP, получит несколько образцов IQ и отправит их через сокет TCP. Следуя примеру файла проекта gqrx, я смог запустить несколько примеров блоков gnuradio (пример тона набора от gr-analog). Проблемы начались, когда я попытался включить в проект блоки UHD / USRP. По сути, создатель Qt сообщает о следующей ошибке:

/usr/local/lib/libgnuradio-uhd.so:-1: error: undefined reference to `uhd::usrp::multi_usrp::ALL_MBOARDS

.pro-файл, настроенный, как показано ниже:

 QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = USRPDialog
TEMPLATE = app


SOURCES += main.cpp \
    usrpdialog.cpp

HEADERS  += \
    usrpdialog.h \
    ui_sdrdialog.h

FORMS += \
    sdrdialog.ui
CONFIG += c++11

CONFIG += link_pkgconfig

PKGCONFIG += gnuradio-analog \
             gnuradio-blocks \
             gnuradio-digital \
             gnuradio-filter \
             gnuradio-fft \
             gnuradio-runtime\
             gnuradio-uhd


LIBS += -lboost_system$$BOOST_SUFFIX -lboost_program_options$$BOOST_SUFFIX -lboost_thread$$BOOST_SUFFIX

LIBS += -luhd -lgnuradio-uhd

И эта функция вызывает объект uhd :: usrp_source

void USRPDialog::createFlowgraph()
{
    tb = gr::make_top_block("usrp");
    d_tcpSource = gr::blocks::tcp_server_sink::make(sizeof(gr_complex),"127.0.0.1",d_rxTCPPort,true);
    d_usrpSource = gr::uhd::usrp_source::make(uhd::device_addr_t(ipAddressLineEdit->text().toStdString()),
                                              uhd::stream_args_t("fc32"));
    //Connecting blocks
    tb->connect(d_usrpSource,0,d_tcpSource,0);
    tb->start();
}

UHD установлен в моей системе (потоковые диаграммы GNU Radio в моей системе могут без проблем подключаться к устройствам USRP). Может ли кто-нибудь пролить свет на то, почему возникает эта проблема?

Заранее спасибо.

...