我正在尝试在 Ubuntu 18.04 上安装 OpenBTS-UMTS。我成功运行
./autogen.sh
和
./configure
然后
make
失败并出现以下错误
Makefile:501: recipe for target 'CLI.lo' failed
make[2]: *** [CLI.lo] Error 1
make[2]: Leaving directory '/home/foo/Downloads/OpenBTS-UMTS/CLI'
Makefile:550: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/foo/Downloads/OpenBTS-UMTS'
Makefile:481: recipe for target 'all' failed
make: *** [all] Error 2
如何解决?感谢那些愿意提供帮助的人。
同版本OpenBTS-UMTS在Ubuntu 16.04上编译安装成功
答案1
Ubuntu 18 默认使用 g++-7,问题与静态 const 数据成员可能在类声明中初始化有关。这是有问题的声明:
../UMTS/UMTSRadioModem.h:181:28: 错误:类内初始化非整数类型的静态数据成员“const float UMTS::RadioModem::mRACHThreshold”需要“constexpr”[-fpermissive] static const float mRACHThreshold = 10.0; ^~~~~~~~~~~~~~
(更多信息这里)
要在 Ubuntu 18 中编译 OpenBTS-UMTS,请安装 g++-5:apt-get install g++-5-multilib
然后使用 update-alternatives 配置 g++ 版本(另请参阅此邮政)