我可以在Xcode(4.2)中構建我的項目以進行調試而沒有問題,但是當我想構建它以用於發佈時(構建用於存檔),我得到錯誤:「Typedef redefinition與不同類型(無符號整數與無符號長整數)「。當試圖構建XCode項目發佈時Typedef重定義錯誤
問題的代碼是:
#ifdef _LZMA_UINT32_IS_ULONG
typedef long Int32;
typedef unsigned long UInt32;
#else
typedef int Int32;
typedef unsigned int UInt32; <--error on this line
#endif
你可以看到整個文件: http://read.pudn.com/downloads166/sourcecode/zip/758136/C/Types.h__.htm
以前的定義是從MacTypes.h框架CoreServices。
我對調試和發佈具有相同的預處理器宏,並且我使用Apple的LLVM編譯器3.0。當我嘗試構建用於分析的項目時,會發生同樣的錯誤。
任何想法爲什麼會發生這種情況?
我知道你認爲你在任何地方都有相同的預處理宏,但是你能否將#error失敗置於ifdef _LZMA_UINT32_IS_ULONG塊中並確保代碼永遠不會被編譯?我覺得如果你確認你可以開始跟蹤原因,那麼通過ifdef進行調試和發佈會有不同的路徑。 – 2012-04-03 14:56:41
你是否正在編譯針對相同的目標在調試vs發佈(即其中一個編譯爲64位,另一個編譯爲32位或兩者? – DRVic 2012-04-03 14:58:15
@DRVic你是對的,我在編譯時只是爲64位調試,對於發行版,我使用了32位/ 64位,當我選擇64位版本時,它的版本很好,我怎樣才能編譯爲32位/ 64位? – 2012-04-03 15:22:00