Проблемы со сборкой 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
Ура,
Бен