我从下载了 Asterisk 的源代码,但http://downloads.asterisk.org/pub/telephony/asterisk/
在 Ubuntu 16.04.1 中从源代码编译时出现错误。请建议编译所需的星号先决条件。
我在尝试制作时收到此错误 -
./libasteriskssl.so: undefined reference to `CRYPTO_num_locks'
collect2: error: ld returned 1 exit status
Makefile:321: recipe for target 'asterisk' failed
make[1]: *** [asterisk] Error 1
Makefile:368: recipe for target 'main' failed
make: *** [main] Error 2
请建议......
答案1
@Luiz Ricardo Ripardo 关于删除 CRYPTO_num_locks 的说法是正确的。我在 configure 脚本中使用了“--disable-asteriskssl”选项,能够在 Raspbain-9-Stretch 上编译和安装 Asterisk 版本 15.1.2。
提到了此选项的使用这里在“构建系统”部分下。
答案2
阅读手册即服务:
https://wiki.asterisk.org/wiki/display/AST/Checking+Asterisk+Requirements:
install_prereq.sh
如果您正在安装 Asterisk 1.6.1.0 或更高版本,它会在contrib/scripts
子目录中附带一个名为的 shell 脚本。
如果您运行install_prereq test
,它会为您提供在操作系统上安装必要系统库的确切命令。
如果您运行install_prereq install
,它会尝试自动下载并安装先决条件。
答案3
降级 openssl。函数 CRYPTO_num_locks 在版本 1.1.0 中已过时。就我而言(Debian Stretch),我将 /etc/apt/sources.list 编辑为 Debian Jessie Repositories,然后运行 apt-get update 和 upgrade 命令。