我有一个正确构建的Xcode 3.2项目(带有icu的sqlite3),我正在尝试在Xcode 4中重新创建它。我收到链接错误:
Undefined symbols for architecture x86_64:
"vtable for __cxxabiv1::__si_class_type_info", referenced from:
typeinfo for icu_48::SortKeyByteSinkin libicui18n.a(ucol.ao)
...
"___gxx_personality_v0", referenced from:
Dwarf Exception Unwind Info (__eh_frame) in libicui18n.a(uregex.ao)
...
我曾经使用过Xcode 3.2。然后我将构建设置Linking-> C++ Standard Library Type
更改为static
(默认为dynamic
)。如果我正确理解文档,则实际标记为STANDARD_C_PLUS_PLUS_LIBRARY_TYPE
。
但我在Xcode 4中找不到该设置!
修改
主模块(sqlite3)是C,但ICU库是C ++,可能是C声明。我可以自己构建sqlite3
,当我需要在ICU库中链接以解决问题时。
答案 0 :(得分:0)
您的应用可能是C,但看起来libicui18n包含C ++。
如果您将main.m
重命名为main.mm
会怎样?这应该导致它与标准C ++库链接。