我有一个使用boost_regex
的程序。库boost_regex
有一个未定义的符号,与我正在使用的boost版本的名称不同。例如,当我使用boost版本1.49时,libboost_regex.so
包含一个名为u_tolower_49
的未定义符号。此符号位于libicuuc.so
。
显然,如果没有icu的用户编译我的程序,链接阶段将失败,因为该符号丢失。所以我决定将它添加到configure.ac中,以便配置阶段在开始编译之前失败。
configure.ac
...
AC_SEARCH_LIBS([u_tolower_49],[icuuc], , AC_MSG_ERROR([Unable to find icuuc, make sure ICU is installed.]))
...
现在我的问题是,当用户的boost版本为48时,该符号不再被命名为u_tolower_49
,而是u_tolower_48
。
如何调整configure.ac以确保配置失败,无论用户具有哪种版本的boost?
答案 0 :(得分:1)
嵌套支票:
AC_SEARCH_LIBS([u_tolower_49],[icuuc],[],[
AC_SEARCH_LIBS([u_tolower_48],[icuuc],[],[
AC_MSG_ERROR([Unable to find icuuc, make sure ICU is installed.])
])
])