У меня есть модуль PHP, написанный на C ++, который опирается на устанавливаемую библиотеку 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 ++?
Edit:
Я понимаю, что проверка искаженного имени ужасна, но нет ли способа проверить имя символа, возвращаемое "nm -C" (например, boost :: gregorian :: bad_month и т. Д.).
Я нашел некоторые ссылки на команду automake AC_LANG_CPLUSPLUS (), но я не уверен, как ее использовать и применимо ли это здесь.