交叉编译星号的麻烦

时间:2015-01-26 11:16:44

标签: 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 install

Ncurses:

  

./ configure --host = arm-linux-gnueabihf --prefix = / usr / arm-linux-gnueabihf CXX = arm-linux-gnueabihf-g ++   制造&& 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   使menuselect&&制造&& 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

引发了以下错误
  

检查-ltermcap中的tgetent ...没有   检查-ltinfo中的tgetent ...没有
  在-lcurses中检查tgetent ...没有
  检查-lncurses中的tgetent ...没有
  configure:error:找不到termcap支持
  make [1]: * [editline / libedit.a]错误1
  make:*
[main]错误2

那么,我该怎么做才能解决这个问题呢?任何帮助将不胜感激 提前谢谢你 Dang Loi

2 个答案:

答案 0 :(得分:1)

是的,谢谢arheops。

我确实通过将 ac_cv_lib_ $ ac_lib_var 转换为yes来编辑main / editline / configure文件,以便在运行make时绕过termcap检查,并且它始终有效。



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




答案 1 :(得分:0)

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

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

但它开源,所以你是免费测试,做更改和提交。或聘请能够做到这一点的人。