私が正しくビルドするXcodeの3.2プロジェクト(ICUとsqlite3のを)持っている、と私は私がリンクエラーを取得していますXcodeの4でそれを再作成しようとしている:私は、前に一度これを持っていたXcode 4で「C++標準ライブラリタイプ」を「静的」に設定する方法は?
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でその設定を見つけることができません!
EDIT
メインモジュール(sqlite3の)がCであるが、ICUライブラリは、おそらくCの宣言と、C++です。自分でsqlite3
を作成することができます。それは、トラブルが始まるICUライブラリにリンクする必要があるときです。
私の間違い(私は問題を修正しました)が、 'main.m'についてどういう意味が分かりません - このプロジェクトには' .m'ファイルはなく、 '.c'だけです。 – egrunin
申し訳ありません。あなたがXcodeを使っていたので、Objective Cと仮定しました。その場合、 'main.c'の名前を' main.cc'に変更しますか? Xcodeに 'g ++'/'clang ++'を強制的に使ってリンクを行いたいとします。これは 'main'の接尾辞に基づいてこれを引き起こすようです。あなたが 'main.c'を持っていなければ、Xcodeにこれを設定する他の設定があるはずですが、私はそれが何であるか分かりません。 – smparkes