交叉编译 Asterisk 的问题

Trouble with Cross Compiling Asterisk


我正在尝试为 Armhf 平台交叉编译 Asterisk。
我使用 g++-arm-linux-gnueabihf && gcc-arm-linux-gnueabihf 包交叉编译 Asterisk 有 2 个先决条件:
SQlite3:

./configure --prefix=/usr/arm-linux-gnueabihf --host=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc make && make install

Ncurses :

./configure --host=arm-linux-gnueabihf --prefix=/usr/arm-linux-gnueabihf CXX=arm-linux-gnueabihf-g++ make && make install

当我交叉编译 Asterisk 时:

./configure --host=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc --prefix=MY_RESULT_DEST_DIR --disable-xmldoc --build=i686-pc-linux-gnu make menuselect && make && make install

效果很好,但我不明白为什么配置脚本识别我的 ncurses && sqlite3 结果目录?

当我在特定目录上安装 ncurses 和 sqlite3,然后使用 2 个参数配置 asterisk 源时出现错误 --with-ncurses && --with-sqlite3,

./configure --host=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc --prefix=MY_RESULT_DEST_DIR --disable-xmldoc --build=i686-pc-linux-gnu --with-ncurses=NCURSES_RESULT --with-sqlite3=SQLITE3_RESULT

配置有效,make失败,make抛出如下错误

checking for tgetent in -ltermcap... no
checking for tgetent in -ltinfo... no
checking for tgetent in -lcurses... no
checking for tgetent in -lncurses... no
configure: error: termcap support not found
make[1]: * [editline/libedit.a] Error 1
make: *
[main] Error 2

那么,我应该怎么做才能解决这个问题?任何帮助将不胜感激。
提前致谢
当莱

您应该安装 pkgconfig 或为您手动更改 Makefile 路径

注意,asterisk make 文件未针对您的体系结构进行测试。

但它是开源的,因此您可以免费测试、更改和提交。或者雇用可以做到这一点的人。

是的,谢谢arheops。

我确实通过将 ac_cv_lib_$ac_lib_var 设置为 yes 来编辑 main/editline/configure 文件,以在 [=28= 时绕过 termcap 检查] make,一直有效。

if { (eval echo configure:1282: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && t$
  rm -rf conftest*
  eval "ac_cv_lib_$ac_lib_var=yes"
else
  echo "configure: failed program was:" >&5
  cat conftest.$ac_ext >&5
  rm -rf conftest*
  eval "ac_cv_lib_$ac_lib_var=yes"
fi