2009-07-13 7 views
0

_dbg_charシンボルを複製:LD:OSX上のリンカーエラー(同じコードのためのLinuxまたはFBSDにエラーなし)を取得

ld: duplicate symbol _dbg_char in .libs/liboekernel_la-OEK_get.o and .libs/liboekernel_la-OEK.o 

エラーに記載されている2つのLIBSは、鉱山であるが、記号ではありません。 C++ flintは両方のlibsに '_dbg_char'があることを確認しますが、どこから来るのかを確認する方法はわかりません。

トリック、戦略、アイデア_dgg_charへの完全な答えは非常に高く評価されるでしょう。

プロジェクトは、あなたが両方のlibs #include場合_dbg_charを宣言したがexternキーワードを欠場ヘッダファイルをチェックしたい場合がありますのlibtool/autotoolsのとgcc 4.01

答えて

1

dbg_charを 'dbg_ ## t'で定義しているロギング/デバッグマクロが見つかりました。それを静的にすることでした。教訓:

  1. osxはシンボル名の先頭に_を付け加えています。私はLinux上でNMを実行したとすることなく、同じ記号を見るまでそれがなかった私は、「_dbg_
  2. OSXをカット
  3. 豊富な皮肉を訴えることが正しかったの代わりに「dbg_」のためのコードベースを検索するために考えられていることを_リード - と - デバッグマクロを貼り付ける私は完全に理解していなかったので、私は多くのトラブルを引き起こした
0

を使用しています。多分それは#ifdefが他のプラットフォーム用に編集されているため、OS Xでその問題にぶつかっただけです。

+0

ありがとう。私はfs全体に対してgrepを使ってfindを実行しましたが、私のファイルやリンゴの* .hファイルには_dbg_charが見つかりませんでした。まだ掘って... – navicore

関連する問題