[bt-devel] Building on OS X

Martin Gruner mg.pub at gmx.net
Wed Nov 26 02:58:34 MST 2008


Greg,

can you please also post 

VERBOSE=1 make

I'm missing the linker command. It needs to include a reference to the ICU libs.

mg

am Mittwoch, 26. November 2008 um 10:06 schrieben Sie:

> Martin,

> Before I post in the log, I just want to add this comment: when the
> script was looking for CLucene, it properly found my installation in
> /opt/local, which I have included in my CMAKE_INCLUDE_PATH and
> CMAKE_LIBRARY_PATH.  However, after it properly found CLucene, it then
> produced an error saying that it couldn't locate CLucene.  When I
> looked in CMakeCache.txt it had proper values for CLUCENE_INCLUDE_DIR
> and CLUCENE_LIBRARY, but it wasn't able to figure out
> CLUCENE_LIBRARY_DIR for whatever reason... just as simple as dropping
> off the libclucene.dylib from the end of the CLUCENE_LIBRARY value.
> Strange... but manually filling in CLUCENE_LIBRARY_DIR in
> CMakeCache.txt allowed the configure to proceed fine (another reason I
> LOVE Cmake and disdain autotools).

> Anyway, here's the linking stage output (warning -- long):
> [100%] Building CXX object CMakeFiles/bibletime.dir/bibletime_automoc.o
> Linking CXX executable bibletime.app/Contents/MacOS/bibletime
> ld warning: duplicate dylib /usr/lib/libz.dylib
> Undefined symbols:
>   "_u_strToUTF8_3_8", referenced from:
>       sword::ICUStringMgr::upperUTF8(char*, unsigned int) constin
> libsword.a(stringmgr.o)
>   "_ublock_getCode_3_8", referenced from:
>       sword::UTF8Transliterator::processText(sword::SWBuf&,
> sword::SWKey const*, sword::SWModule const*)in
> libsword.a(utf8transliterator.o)
>   "icu_3_8::Transliterator::registerInstance(icu_3_8::Transliterator*)",
> referenced from:
>       sword::UTF8Transliterator::checkTrans(icu_3_8::UnicodeString
> const&, UErrorCode&)   in libsword.a(utf8transliterator.o)
>   "_ures_getStringByIndex_3_8", referenced from:
>       sword::UTF8Transliterator::Load(UErrorCode&)      in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::Load(UErrorCode&)      in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::Load(UErrorCode&)      in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::Load(UErrorCode&)      in
> libsword.a(utf8transliterator.o)
>   "icu_3_8::UnicodeString::doCompare(int, int, unsigned short const*,
> int, int) const", referenced from:
>       std::_Rb_tree<icu_3_8::UnicodeString const,
> std::pair<icu_3_8::UnicodeString const, sword::SWTransData>,
> std::_Select1st<std::pair<icu_3_8::UnicodeString const,
sword::SWTransData>> >, std::less<icu_3_8::UnicodeString const>,
> std::allocator<std::pair<icu_3_8::UnicodeString const,
sword::SWTransData>> > >::find(icu_3_8::UnicodeString const&)in
> libsword.a(utf8transliterator.o)
>       std::_Rb_tree<icu_3_8::UnicodeString const,
> std::pair<icu_3_8::UnicodeString const, sword::SWTransData>,
> std::_Select1st<std::pair<icu_3_8::UnicodeString const,
sword::SWTransData>> >, std::less<icu_3_8::UnicodeString const>,
> std::allocator<std::pair<icu_3_8::UnicodeString const,
sword::SWTransData>> > >::find(icu_3_8::UnicodeString const&)in
> libsword.a(utf8transliterator.o)
>       std::_Rb_tree<icu_3_8::UnicodeString const,
> std::pair<icu_3_8::UnicodeString const, sword::SWTransData>,
> std::_Select1st<std::pair<icu_3_8::UnicodeString const,
sword::SWTransData>> >, std::less<icu_3_8::UnicodeString const>,
> std::allocator<std::pair<icu_3_8::UnicodeString const,
sword::SWTransData>> > >::_M_insert(std::_Rb_tree_node_base*,
> std::_Rb_tree_node_base*, std::pair<icu_3_8::UnicodeString const,
sword::SWTransData>> const&)in libsword.a(utf8transliterator.o)
>       std::_Rb_tree<icu_3_8::UnicodeString const,
> std::pair<icu_3_8::UnicodeString const, sword::SWTransData>,
> std::_Select1st<std::pair<icu_3_8::UnicodeString const,
sword::SWTransData>> >, std::less<icu_3_8::UnicodeString const>,
> std::allocator<std::pair<icu_3_8::UnicodeString const,
sword::SWTransData>> >
>>::insert_unique(std::pair<icu_3_8::UnicodeString const,
sword::SWTransData>> const&)in libsword.a(utf8transliterator.o)
>       std::_Rb_tree<icu_3_8::UnicodeString const,
> std::pair<icu_3_8::UnicodeString const, sword::SWTransData>,
> std::_Select1st<std::pair<icu_3_8::UnicodeString const,
sword::SWTransData>> >, std::less<icu_3_8::UnicodeString const>,
> std::allocator<std::pair<icu_3_8::UnicodeString const,
sword::SWTransData>> >
>>::insert_unique(std::pair<icu_3_8::UnicodeString const,
sword::SWTransData>> const&)in libsword.a(utf8transliterator.o)
>   "icu_3_8::UnicodeString::UnicodeString(unsigned short const*)",
> referenced from:
>       sword::UTF8Transliterator::processText(sword::SWBuf&,
> sword::SWKey const*, sword::SWModule const*)in
> libsword.a(utf8transliterator.o)
>   "_ures_getByKey_3_8", referenced from:
>       sword::UTF8Transliterator::Load(UErrorCode&)      in
> libsword.a(utf8transliterator.o)
>   "_ucnv_close_3_8", referenced from:
>       sword::UTF8Transliterator::processText(sword::SWBuf&,
> sword::SWKey const*, sword::SWModule const*)in
> libsword.a(utf8transliterator.o)
>       sword::UTF8NFKD::~UTF8NFKD()in libsword.a(utf8nfkd.o)
>       sword::UTF8NFKD::~UTF8NFKD()in libsword.a(utf8nfkd.o)
>   "icu_3_8::UnicodeString::UnicodeString(signed char, unsigned short
> const*, int)", referenced from:
>       sword::UTF8Transliterator::checkTrans(icu_3_8::UnicodeString
> const&, UErrorCode&)   in libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::Load(UErrorCode&)      in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::Load(UErrorCode&)      in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::Load(UErrorCode&)      in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::Load(UErrorCode&)      in
> libsword.a(utf8transliterator.o)
>   "_u_strFromUTF8_3_8", referenced from:
>       sword::ICUStringMgr::upperUTF8(char*, unsigned int) constin
> libsword.a(stringmgr.o)
>   "_ucnv_toUChars_3_8", referenced from:
>       sword::UTF8Transliterator::processText(sword::SWBuf&,
> sword::SWKey const*, sword::SWModule const*)in
> libsword.a(utf8transliterator.o)
>       sword::UTF8NFKD::processText(sword::SWBuf&, sword::SWKey const*,
> sword::SWModule const*)in libsword.a(utf8nfkd.o)
>   "icu_3_8::UnicodeString::extract(int, int, char*, unsigned int, char
> const*) const", referenced from:
>       sword::UTF8Transliterator::checkTrans(icu_3_8::UnicodeString
> const&, UErrorCode&)   in libsword.a(utf8transliterator.o)
>   "icu_3_8::Transliterator::createFromRules(icu_3_8::UnicodeString
> const&, icu_3_8::UnicodeString const&, UTransDirection, UParseError&,
> UErrorCode&)", referenced from:
>       sword::UTF8Transliterator::checkTrans(icu_3_8::UnicodeString
> const&, UErrorCode&)   in libsword.a(utf8transliterator.o)
>   "_u_strToUpper_3_8", referenced from:
>       sword::ICUStringMgr::upperUTF8(char*, unsigned int) constin
> libsword.a(stringmgr.o)
>   "_ures_openDirect_3_8", referenced from:
>       sword::UTF8Transliterator::checkTrans(icu_3_8::UnicodeString
> const&, UErrorCode&)   in libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::Load(UErrorCode&)      in
> libsword.a(utf8transliterator.o)
>   "_ures_getStringByKey_3_8", referenced from:
>       sword::UTF8Transliterator::checkTrans(icu_3_8::UnicodeString
> const&, UErrorCode&)   in libsword.a(utf8transliterator.o)
>   "icu_3_8::UnicodeString::UnicodeString(char const*, char const*)",
> referenced from:
>       sword::UTF8Transliterator::processText(sword::SWBuf&,
> sword::SWKey const*, sword::SWModule const*)in
> libsword.a(utf8transliterator.o)
>   "icu_3_8::Transliterator::createInstance(icu_3_8::UnicodeString
> const&, UTransDirection, UErrorCode&)", referenced from:
>       sword::UTF8Transliterator::createTrans(icu_3_8::UnicodeString
> const&, UTransDirection, UErrorCode&)   in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::checkTrans(icu_3_8::UnicodeString
> const&, UErrorCode&)   in libsword.a(utf8transliterator.o)
>   "_ures_getByIndex_3_8", referenced from:
>       sword::UTF8Transliterator::Load(UErrorCode&)      in
> libsword.a(utf8transliterator.o)
>   "icu_3_8::UnicodeString::UnicodeString()", referenced from:
>       sword::UTF8Transliterator::registerTrans(icu_3_8::UnicodeString
> const&, icu_3_8::UnicodeString const&, UTransDirection, UErrorCode&)in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::registerTrans(icu_3_8::UnicodeString
> const&, icu_3_8::UnicodeString const&, UTransDirection, UErrorCode&)in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::registerTrans(icu_3_8::UnicodeString
> const&, icu_3_8::UnicodeString const&, UTransDirection, UErrorCode&)in
> libsword.a(utf8transliterator.o)
>   "icu_3_8::UnicodeString::~UnicodeString()", referenced from:
>       sword::UTF8Transliterator::checkTrans(icu_3_8::UnicodeString
> const&, UErrorCode&)   in libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::checkTrans(icu_3_8::UnicodeString
> const&, UErrorCode&)   in libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::checkTrans(icu_3_8::UnicodeString
> const&, UErrorCode&)   in libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::checkTrans(icu_3_8::UnicodeString
> const&, UErrorCode&)   in libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::processText(sword::SWBuf&,
> sword::SWKey const*, sword::SWModule const*)in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::processText(sword::SWBuf&,
> sword::SWKey const*, sword::SWModule const*)in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::processText(sword::SWBuf&,
> sword::SWKey const*, sword::SWModule const*)in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::registerTrans(icu_3_8::UnicodeString
> const&, icu_3_8::UnicodeString const&, UTransDirection, UErrorCode&)in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::registerTrans(icu_3_8::UnicodeString
> const&, icu_3_8::UnicodeString const&, UTransDirection, UErrorCode&)in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::registerTrans(icu_3_8::UnicodeString
> const&, icu_3_8::UnicodeString const&, UTransDirection, UErrorCode&)in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::registerTrans(icu_3_8::UnicodeString
> const&, icu_3_8::UnicodeString const&, UTransDirection, UErrorCode&)in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::registerTrans(icu_3_8::UnicodeString
> const&, icu_3_8::UnicodeString const&, UTransDirection, UErrorCode&)in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::registerTrans(icu_3_8::UnicodeString
> const&, icu_3_8::UnicodeString const&, UTransDirection, UErrorCode&)in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::registerTrans(icu_3_8::UnicodeString
> const&, icu_3_8::UnicodeString const&, UTransDirection, UErrorCode&)in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::registerTrans(icu_3_8::UnicodeString
> const&, icu_3_8::UnicodeString const&, UTransDirection, UErrorCode&)in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::registerTrans(icu_3_8::UnicodeString
> const&, icu_3_8::UnicodeString const&, UTransDirection, UErrorCode&)in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::registerTrans(icu_3_8::UnicodeString
> const&, icu_3_8::UnicodeString const&, UTransDirection, UErrorCode&)in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::registerTrans(icu_3_8::UnicodeString
> const&, icu_3_8::UnicodeString const&, UTransDirection, UErrorCode&)in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::registerTrans(icu_3_8::UnicodeString
> const&, icu_3_8::UnicodeString const&, UTransDirection, UErrorCode&)in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::Load(UErrorCode&)      in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::Load(UErrorCode&)      in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::Load(UErrorCode&)      in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::Load(UErrorCode&)      in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::Load(UErrorCode&)      in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::Load(UErrorCode&)      in
> libsword.a(utf8transliterator.o)
>       std::_Rb_tree<icu_3_8::UnicodeString const,
> std::pair<icu_3_8::UnicodeString const, sword::SWTransData>,
> std::_Select1st<std::pair<icu_3_8::UnicodeString const,
sword::SWTransData>> >, std::less<icu_3_8::UnicodeString const>,
> std::allocator<std::pair<icu_3_8::UnicodeString const,
sword::SWTransData>> >
>>::_M_erase(std::_Rb_tree_node<std::pair<icu_3_8::UnicodeString const,
sword::SWTransData>> >*)in libsword.a(utf8transliterator.o)
>       std::_Rb_tree<icu_3_8::UnicodeString const,
> std::pair<icu_3_8::UnicodeString const, sword::SWTransData>,
> std::_Select1st<std::pair<icu_3_8::UnicodeString const,
sword::SWTransData>> >, std::less<icu_3_8::UnicodeString const>,
> std::allocator<std::pair<icu_3_8::UnicodeString const,
sword::SWTransData>> >
>>::_M_erase(std::_Rb_tree_node<std::pair<icu_3_8::UnicodeString const,
sword::SWTransData>> >*)in libsword.a(utf8transliterator.o)
>       std::_Rb_tree<icu_3_8::UnicodeString const,
> std::pair<icu_3_8::UnicodeString const, sword::SWTransData>,
> std::_Select1st<std::pair<icu_3_8::UnicodeString const,
sword::SWTransData>> >, std::less<icu_3_8::UnicodeString const>,
> std::allocator<std::pair<icu_3_8::UnicodeString const,
sword::SWTransData>> >
>>::_M_erase(std::_Rb_tree_node<std::pair<icu_3_8::UnicodeString const,
sword::SWTransData>> >*)in libsword.a(utf8transliterator.o)
>       std::_Rb_tree<icu_3_8::UnicodeString const,
> std::pair<icu_3_8::UnicodeString const, sword::SWTransData>,
> std::_Select1st<std::pair<icu_3_8::UnicodeString const,
sword::SWTransData>> >, std::less<icu_3_8::UnicodeString const>,
> std::allocator<std::pair<icu_3_8::UnicodeString const,
sword::SWTransData>> > >::_M_insert(std::_Rb_tree_node_base*,
> std::_Rb_tree_node_base*, std::pair<icu_3_8::UnicodeString const,
sword::SWTransData>> const&)in libsword.a(utf8transliterator.o)
>   "_unorm_normalize_3_8", referenced from:
>       sword::UTF8NFKD::processText(sword::SWBuf&, sword::SWKey const*,
> sword::SWModule const*)in libsword.a(utf8nfkd.o)
>   "_ucnv_open_3_8", referenced from:
>       sword::UTF8Transliterator::processText(sword::SWBuf&,
> sword::SWKey const*, sword::SWModule const*)in
> libsword.a(utf8transliterator.o)
>       sword::UTF8NFKD::UTF8NFKD()in libsword.a(utf8nfkd.o)
>   "_u_errorName_3_8", referenced from:
>       sword::UTF8Transliterator::checkTrans(icu_3_8::UnicodeString
> const&, UErrorCode&)   in libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::checkTrans(icu_3_8::UnicodeString
> const&, UErrorCode&)   in libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::Load(UErrorCode&)      in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::Load(UErrorCode&)      in
> libsword.a(utf8transliterator.o)
>   "_ures_close_3_8", referenced from:
>       sword::UTF8Transliterator::checkTrans(icu_3_8::UnicodeString
> const&, UErrorCode&)   in libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::Load(UErrorCode&)      in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::Load(UErrorCode&)      in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::Load(UErrorCode&)      in
> libsword.a(utf8transliterator.o)
>   "_ucnv_fromUChars_3_8", referenced from:
>       sword::UTF8Transliterator::processText(sword::SWBuf&,
> sword::SWKey const*, sword::SWModule const*)in
> libsword.a(utf8transliterator.o)
>       sword::UTF8NFKD::processText(sword::SWBuf&, sword::SWKey const*,
> sword::SWModule const*)in libsword.a(utf8nfkd.o)
>   "icu_3_8::UnicodeString::operator=(icu_3_8::UnicodeString const&)",
> referenced from:
>       sword::UTF8Transliterator::registerTrans(icu_3_8::UnicodeString
> const&, icu_3_8::UnicodeString const&, UTransDirection, UErrorCode&)in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::registerTrans(icu_3_8::UnicodeString
> const&, icu_3_8::UnicodeString const&, UTransDirection, UErrorCode&)in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::registerTrans(icu_3_8::UnicodeString
> const&, icu_3_8::UnicodeString const&, UTransDirection, UErrorCode&)in
> libsword.a(utf8transliterator.o)
>   "icu_3_8::UnicodeString::UnicodeString(icu_3_8::UnicodeString
> const&)", referenced from:
>       sword::UTF8Transliterator::checkTrans(icu_3_8::UnicodeString
> const&, UErrorCode&)   in libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::registerTrans(icu_3_8::UnicodeString
> const&, icu_3_8::UnicodeString const&, UTransDirection, UErrorCode&)in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::registerTrans(icu_3_8::UnicodeString
> const&, icu_3_8::UnicodeString const&, UTransDirection, UErrorCode&)in
> libsword.a(utf8transliterator.o)
>       std::_Rb_tree<icu_3_8::UnicodeString const,
> std::pair<icu_3_8::UnicodeString const, sword::SWTransData>,
> std::_Select1st<std::pair<icu_3_8::UnicodeString const,
sword::SWTransData>> >, std::less<icu_3_8::UnicodeString const>,
> std::allocator<std::pair<icu_3_8::UnicodeString const,
sword::SWTransData>> > >::_M_insert(std::_Rb_tree_node_base*,
> std::_Rb_tree_node_base*, std::pair<icu_3_8::UnicodeString const,
sword::SWTransData>> const&)in libsword.a(utf8transliterator.o)
>       std::_Rb_tree<icu_3_8::UnicodeString const,
> std::pair<icu_3_8::UnicodeString const, sword::SWTransData>,
> std::_Select1st<std::pair<icu_3_8::UnicodeString const,
sword::SWTransData>> >, std::less<icu_3_8::UnicodeString const>,
> std::allocator<std::pair<icu_3_8::UnicodeString const,
sword::SWTransData>> > >::_M_insert(std::_Rb_tree_node_base*,
> std::_Rb_tree_node_base*, std::pair<icu_3_8::UnicodeString const,
sword::SWTransData>> const&)in libsword.a(utf8transliterator.o)
>   "_ures_getSize_3_8", referenced from:
>       sword::UTF8Transliterator::Load(UErrorCode&)      in
> libsword.a(utf8transliterator.o)
>       sword::UTF8Transliterator::Load(UErrorCode&)      in
> libsword.a(utf8transliterator.o)
> ld: symbol(s) not found
> collect2: ld returned 1 exit status
> make[2]: *** [bibletime.app/Contents/MacOS/bibletime] Error 1
> make[1]: *** [CMakeFiles/bibletime.dir/all] Error 2
> make: *** [all] Error 2

> _______________________________________________
> bt-devel mailing list
> bt-devel at crosswire.org
> http://www.crosswire.org/mailman/listinfo/bt-devel





More information about the bt-devel mailing list