https://wiki.gnuradio.org/index.php/TutorialsGDB
gnuradio 3.9
gnuradio 3.9竟然这么快就发布了。主要更新:
- 使用C++14
- 使用PyBind11替代SWIG
- Volk作为依赖而不作为子模块存在了
依赖:
- python3.6.5
- numpy 1.13.3
- volk 2.4.1
- cmake 3.10.2
- boost 1.65
- Mako 1.0.7
- PyBind11 2.4.3
- GCC 8.3.0 / Clang 11.0.0 / MSVC 1910(VS2017 15.0)
- UHD 3.9.7
gnuradio 3.8
gnuradio 3.8同时支持python2和python3, 基于QT5,所以源码编译有些区别。
- 使用C++11
- 新依赖:MPIR/GMP, Qt5, gsm, codec2
- 删除依赖:libusb, Qt4, CppUnit
- 同时支持python2和python3,也是最后一个支持python2的gnuradio版本了。
- 现代CMake
- VOLK版本从1.4上升到v2.0.0
- YAML替代XML
由于python2已经停止维护,所以就使用python3了。
uhd deps
老版本的UHD默认是使用python2的,在这里改成python3
1
| sudo apt install libboost-all-dev libusb-1.0-0-dev doxygen python3-docutils python3-mako python3-numpy python3-requests python3-ruamel.yaml python3-setuptools cmake build-essential libgps-dev
|
python3的文档编译不通过,也没使用用,直接禁用掉:
1
| cmake -DENABLE_PYTHON3=ON -DPYTHON_EXECUTABLE=/usr/bin/python3 -DENABLE_GPSD=ON -DENABLE_MAN_PAGES=OFF -DENABLE_DOXYGEN=OFF -DENABLE_MANUAL=OFF ..
|
gnuradio 3.8 deps
1
| sudo apt install git g++ libgmp-dev swig python3-sphinx python3-lxml doxygen libfftw3-dev libsdl1.2-dev libgsl-dev libqwt-qt5-dev libqt5opengl5-dev python3-pyqt5 liblog4cpp5-dev libzmq3-dev python3-yaml python3-click python3-click-plugins python3-zmq python3-scipy python3-pip python3-gi-cairo
|
1
| sudo -H pip3 install pyqtgraph numpy scipy
|
貌似gnuradio的安装目录没有默认进系统环境变量,添加上:
1
2
3
4
5
| echo 'export PYTHONPATH=/usr/local/lib/python3/dist-packages:/usr/local/lib/python3/site-packages:$PYTHONPATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/user/local/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
echo 'export PYTHONPATH=/usr/local/lib/python3/dist-packages:/usr/local/lib/python3/site-packages$PYTHONPATH' >> ~/.profile
echo 'export LD_LIBRARY_PATH=/user/local/lib:$LD_LIBRARY_PATH' >> ~/.profile
source .bashrc
|
后面的编译环境差不多
1
2
3
4
5
6
7
8
| git checkout maint-3.8
git submodule update --init # gnuradio v3.8使用volk v2.0
mkdir build && cd build
cmake
make -j $(nproc --all)
make test
sudo make install
sudo ldconfig
|