小编Bil*_*win的帖子

如何在 Xenial 上构建 Asterisk 1.8?

Asterisk 13.1.0 在 Xenial 的存储库中可用。

但我支持需要 Asterisk 1.8 LTS 的应用程序,因为我们使用自定义插件。我们需要继续使用 Asterisk 1.8 并从源代码构建它,直到我们可以将我们的插件移植到新版本的 Asterisk。

但是,似乎 Asterisk 1.8 无法使用 Xenial 上可用的 g++ 版本 5.3.1 构建。我收到了大量警告,它们可以被静音,但也有很多关于重复定义符号的致命错误,甚至可能还有其他致命错误,即使我可以解决这些错误。

例子:

iax2-parser.o: In function `ast_atomic_fetchadd_int':
asterisk-1.8/include/asterisk/lock.h:600: multiple definition of `ast_atomic_fetchadd_int'
chan_iax2.o:asterisk-1.8/include/asterisk/lock.h:600: first defined here
iax2-parser.o: In function `ast_atomic_dec_and_test':
asterisk-1.8/include/asterisk/lock.h:646: multiple definition of `ast_atomic_dec_and_test'
chan_iax2.o:asterisk-1.8/include/asterisk/lock.h:646: first defined here
...etc...
Run Code Online (Sandbox Code Playgroud)

我一直在阅读其他人的帖子,我一直在尝试使用编译器选项来解决这个问题,但没有成功。

我的问题是是否有任何解决方案可以执行以下操作之一:

  • 使用 g++ 5.3.1 构建 Asterisk 1.8 并解决编译错误。
  • 在 Xenial 上安装旧版本的 g++(例如,我知道 g++ 4.4.7 可以在我们的旧操作系统上编译 Asterisk 1.8)。
  • 构建将在 Xenial 上运行的 Asterisk 版本的其他解决方案。也许在 Ubuntu 14.04 上构建并压缩二进制文件?我希望得到库版本冲突。

有些人会说,“你真的应该升级到 Asterisk …

g++ asterisk

6
推荐指数
1
解决办法
1823
查看次数

标签 统计

asterisk ×1

g++ ×1