0
我有一個程序,它利用了boost_regex
AC_SEARCH_LIBS。庫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.]))
...
現在我的問題是,當用戶的提升的版本是48,符號不再命名u_tolower_49
但u_tolower_48
。
我如何可以調整configure.ac,以確保無論配置不成功的提升用戶擁有的版本?
+1的想法,但HM,還提高50,提高51,以此類推,上 – qdii
@qdii這是推動佔用的問題!如果他們更改符號名稱來破壞API,則可能有(這可能是)這樣做的原因。你可以通過使用'm4_foreach'循環來減輕痛苦,但是任何解決方案都會變得很糟糕。 –