我有一個關於math.h中定義的常量如何鏈接的問題。_HUGE和__IMP__HUGE在「math.h」中
在visual studio 2010中,我用「MD」構建了一個64位的dll C++庫,它使用了使用「HUGE_VAL」的第三方庫。從頭文件「math.h」看來,「HUGE_VAL」被定義爲「_HUGE」。當我嘗試建立,一個鏈接錯誤導致
錯誤LNK2001:解析外部符號_HUGE
做一些google搜索後,我覺得應該_HUGE在MSVCRT.LIB定義。 MSVCRT.lib已鏈接,但我沒有鏈接libcmt.lib,因爲它會導致重新定義錯誤。
什麼令我奇怪的是,當我創建使用HUGE_VAL並使用/冗長作爲一個連接器選項一個簡單的控制檯程序,它顯示_ 被鏈接IMP _HUGE。
我真的好奇的是_HUGE變成了什麼階段_ IMP _HUGE?另外,還有誰得到了未解決的_HUGE錯誤,並且沒有人對如何解決它有任何想法?
感謝您閱讀長長的問題和任何想法。
我對Visual Studio一無所知(我只在Linux上使用GCC),但HUGE_VAL是標準的。也許你需要讓你的編譯器嚴格遵循一個更新的標準? –
您正在混合使用/ MT編譯的.obj/.lib文件。你不能混用,所有鏈接的代碼都需要使用相同的設置。 –