如何使用已经为 arm 交叉编译的 dahdi 交叉编译星号?

How to cross-compile asterisk with dahdi already cross-compiled for arm?

我正在尝试为 ARM 交叉编译 asterisk。

当我交叉编译必需模块时一切都很好,例如 sqlite3、ncurses 和 openssl,然后在交叉时包括它们-使用各自的选项编译星号 --with-sqlite3, --with-ncurses --with-crypto 和 --with-ssl.

但是当我试图包括 dahdi 时,没有任何结果。这发生在 --with-dahdi=$(DAHDI_DIR)/linux:

checking for tone_zone_find_by_num in -ltonezone...no
checking for tone_zone_find in -ltonezone... no

我知道当它可以检查音调区域然后寻找 dahdi/tonezone.h 时,它是正确的。然后我没有看到错误,但是 chan_dahdi 在 运行 [=23= 时无法选择]制作菜单配置
这发生在 --with-dahdi=$(DAHDI_BUILD_RESULT_DIR) :

checking for mandatory modules:  CRYPTO DAHDI NCURSES SQLITE3 OPENSSL... fail

configure: ***
configure: *** The DAHDI installation appears to be missing or broken.
configure: *** Either correct the installation, or run configure
configure: *** including --without-dahdi.

请注意 $(DAHDI_BUILD_RESULT_DIR) 包含我在构建 dahdi 时的结果,假设我做对了,因为这是结果中的驱动因素之一:

$(DAHDI_BUILD_RESULT_DIR)/lib/modules/3.8.13/dahdi/dahdi.ko: ELF 32-bit LSB relocatable, ARM, EABI5 version 1 (SYSV), BuildID[sha1]=2b16a606c922ca5f10288dba98f2b365e8316748, not stripped

我的过程中使用的东西:
1. 达赫迪 2.10 完成
2. linaro交叉编译工具链
3. Linux 内核 3.8.13
4.星号 11.11.0
5. 硬件:Beagleboneblack

如果有人有想法,或者知道如何使用 dahdi 交叉编译 asterisk,将不胜感激。
此致。
来党

查看asterisk的configure.ac,它检查dahdi的dahdi-tools部分(用户空间)是否完整,编译不需要dahdi-linux部分(内核模块)。确保头文件安装在正确的位置,通常是 /usr/include.

非常感谢@viktike 帮助我走出困境。添加 CFLAGS 指向 DAHDI C 头文件和 LDFLAGS 指向 lib 文件作为参数 when 运行 configure asterisk的脚本很好的解决了我的问题

./configure [other argument] CFLAGS="-g -I/home/thanhloi/workspace/asterisk/dahdi-linux-complete-2.10.1+2.10.1/RESULT/usr/include/" LDFLAGS="-L/home/thanhloi/workspace/asterisk/dahdi-linux-complete-2.10.1+2.10.1/RESULT/usr/lib/ -lpthread -ldl"

Asterisk 然后配置并安装了 dahdi。
此致
来党