インストールされているC++ライブラリ(Boost Date_Time)に依存するC++で記述されたPHPモジュールがあります。
現在、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
])
現在、これは現在の環境で機能しますが、ライブラリまたはコンパイラの別のバージョンでこれが機能しなくなる可能性があることを痛感しています。
マングルされていないC++シンボルをautomakeに理解させるにはどうすればよいですか?
編集:
マングルされた名前をチェックするのは恐ろしいことですが、「nm -C」によって返されるシンボル名をチェックする方法はありません(例:boost :: gregorian :: bad_monthなど)。
automakeコマンドAC_LANG_CPLUSPLUS()への参照を見つけましたが、それを使用する方法と、ここで適用できるかどうかはわかりません。