Проблемы со сборкой SWIG/CMAKE, попытка установить и использовать новый модуль в GNURadio

Я пытаюсь сделать копию исходного блока USRP, включенного в UHD-модуль GNURadio, чтобы я мог свободно изменять work() функция.

На данный момент я просто пытаюсь создать блок, который работает точно так же, как и блок "Источник USRP". Я сделал новый модуль под названием "Асат", создал .cc, .h, .xml, CMakeLists, а также __init__ файлы, и получил все это для компиляции и установки без ошибок.

Однако, когда я пытаюсь запустить файл GRP.py, я получаю следующую ошибку:

File "/usr/local/lib/python2.7/dist-packages/asat/__init__.py", line 128, in <module> _prepare_asat_swig()
File "/usr/local/lib/python2.7/dist-packages/asat/__init__.py", line 32, in _prepare_asat_swig import asat_swig
File "/usr/local/lib/python2.7/dist-packages/asat/asat_swig.py", line 26, in <module> _asat_swig = swig_import_helper()
File "/usr/local/lib/python2.7/dist-packages/asat/asat_swig.py", line 22, in swig_import_helper _mod = imp.load_module('_asat_swig', fp, pathname, description)
ImportError: /usr/local/lib/python2.7/dist-packages/asat/_asat_swig.so: undefined symbol: /ZTIN3uhd9key_errorE

Я рвал на себе волосы, пытаясь устранить ошибку, и из-за того, что я гуглял, я подозреваю, что это проблема библиотек, которые неправильно связываются в CMAKE, но я новичок в SWIG/CMAKE и не могу решить эту проблему.,

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

Я сделал репозиторий github со своим источником и создаю каталоги для всех, кто хочет мне помочь.

1 ответ

Джоэл -

Вам нужно создать SWIG-файл для вашего нового блока, чтобы он получал SWIG'd для Python - в противном случае вы не сможете использовать его из потоковых диаграмм Python, которые генерирует GRC.

В исходном дереве GNURadio есть множество SWIG-файлов *.i, на которые вы можете посмотреть. В качестве альтернативы, я рекомендую вам спросить в списке рассылки gnuradio-Discussion, где почти вся поддержка GNURadio имеет место (я единственный, кто знает, что контролирует SO):

https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Ура,

Бен

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