我有一个用 C++ 编写的 PHP 模块,它依赖于安装的 C++ 库(Boost Date_Time)。
目前,在我的 config.m4 文件中,我正在检查库,如下所示:
LIBNAME=boost_date_time
LIBSYMBOL=_ZN5boost9gregorian9bad_monthD0Ev
PHP_CHECK_LIBRARY($LIBNAME,$LIBSYMBOL,,
[
AC_MSG_ERROR([lib $LIBNAME not found. Try: sudo apt-get install libboost-dev])
],[
-lstdc++ -ldl
])
现在,这适用于我当前的环境,但我痛苦地意识到这可能会在不同版本的库或编译器上中断。
如何让 automake 理解未损坏的 C++ 符号?
编辑:
我意识到检查损坏的名称是可怕的,但是没有某种方法可以检查“nm -C”返回的符号名称(例如 boost::gregorian::bad_month 等)。
我发现了一些对 automake 命令 AC_LANG_CPLUSPLUS() 的参考,但我不确定如何使用它以及它是否适用于这里。