交叉编译 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
我正在尝试为 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