2009-07-13 80 views
0

獲取有關OSX鏈接錯誤(同一代碼在Linux或FBSD沒有錯誤):LD:重複的符號_dbg_char

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

錯誤中列出的2個庫是我的,但符號不是。 C++ flint確認'_dbg_char'在兩個庫中,但我不知道如何找到它的來源。

技巧,策略,對於如何ID _dbg_char將不勝感激直接的答案。

項目使用的libtool /自動工具和GCC 4.01

回答

1

找到一個記錄/調試宏,'dbg_ ## t'定義了dbg_char。修復是讓它變成靜態的。經驗教訓:

  1. osx增加了一個前導_符號名稱。但直到我跑在Linux納米,看到了同樣的符號,而領先_我想搜索的代碼庫「dbg_」,而不是「_dbg_
  2. OSX是正確的抱怨
  3. 富有諷刺意味的是切 - 和 - 粘貼調試宏我沒有完全理解我造成這麼大的麻煩
0

你可能要檢查如果申報_dbg_char但錯過extern關鍵字都庫#include的頭文件。也許這是#ifdef'爲其他平臺編輯,所以你只能在OS X上遇到這個問題。

+0

感謝。我已經用grep對整個fs運行find,並且在我的和apples * .h文件中沒有找到任何_dbg_char。仍在挖掘... – navicore 2009-07-13 15:31:03

相關問題