本文主要讲解在 Linux 环境下编译 FreeSWITCH 模块时的配置以及所遇到的问题

Linux 下编译 MOD 的配置

  • 在 configure.ac 中配置需要编译模块的 makefile文件,例如:src/mod/endpoints/mod_verto/Makefile
    1
    2
    3
    4
    5
    6
    7
    8
    9
    PKG_CHECK_MODULES([HIREDIS], [hiredis >= 0.10.0],[
    AM_CONDITIONAL([HAVE_HIREDIS],[true])],[
    AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_HIREDIS],[false])])

    PKG_CHECK_MODULES([REDIS_PLUS], [redis++ >= 1.3.10],[
    AM_CONDITIONAL([HAVE_REDIS_PLUS],[true])],[
    AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_REDIS_PLUS],[false])])

    src/mod/applications/mod_redis_plus/Makefile
  • 在 modules.conf 中配置允许编译的模块,例如:endpoints/mod_verto
  • 运行 autoreconf -fiv 重新生成 m4 文件
  • 通过 rebootstrap.sh or bootstrap.sh 重新生成 configure 编译文件

关于 Linux 下模块的 Makefile.am 编写事项

失败问题总结

  • 无法生成 Makefile.in 文件
    • 注意模块位置不要写错了,否则无法生成