這個問題與此有關:和"bad codegen, pointer diff" linker error with Xcode 4"bad codegen, pointer diff in boost" error in 32-bit build和XCode 3.2.6 and 4 linker errors ld:bad codegen, pointer diff in ... to global weak symbolXcode4:「壞的代碼生成,指針DIFF」鏈接錯誤再次
我目前正在升級我的所有項目Xcode4,我遇到了一些weirdness.-以上只有在構建通用二進制文件或32位版本時纔會出現錯誤。如果我只堅持64位,事情工作正常。我自己構建了一個自定義靜態庫,現在我沒有在該代碼中使用任何可見性設置(即屬性((visibility(「default」))))。如果我鏈接庫,並嘗試建立項目,確切的錯誤是:
LD:糟糕的代碼生成,在汽車::核心:: DefaultStoragePolicy :: DefaultStoragePolicy(myWindowContent * const的&)全球弱指針DIFF符號汽車::核心:: NullPointerException異常::〜NullPointerException異常()爲i386硬件架構
它坐落在我的SmartPtr類可以拋出一個NullPointerException(從標準::異常派生只)。如果我明確地將NullPointerException類的可見性設置爲隱藏,事情編譯正常,但隱藏一個異常不會很好!我嘗試了以下編譯器:GCC 4.2,LLVM-GCC 4.2和LLVM 2.1都有相同的問題。設置符號默認隱藏到是在他的項目/目標設置沒有工作(也不是我想要的)。所以我怎麼能解決這個問題,而不隱藏我的例外(這是無稽之談)。我必須忍受它,它是一個錯誤嗎?期待你的想法,謝謝!