完整的輸出是這樣的(只有一個錯誤)定義,發佈版本似乎並沒有遇到同樣的問題鏈接:「__fltused」被多次如果我不使用漂浮在程序
SDL2.lib(SDL_stdlib.obj) : error LNK2005: __fltused already defined in LIBCMTD.lib(fltused.obj)`
我已經用/ MTd和靜態庫重新編譯了SDL2.lib,並確保它是我的系統上唯一的名稱庫。
它變得怪異,但:把浮點運算在我的程序的任何地方允許它沒有問題鏈接:
int main(int argc, char * argv[]) {
return 0; // will not link
}
int main(int argc, char * argv[]) {
float flt = 0.0f; // gets around optimization
return int(flt); // will link
}
這不是理想的,當然,這可能是潛在的問題嗎?
這表示您正在鏈接到多個版本的C運行時庫。你說你用/ MTd重新編譯了SDL2.lib;什麼是您的應用程序編譯?它也應該用/ MTd編譯。 –
@CodyGray - aye,SDL2和我的可執行文件都是/ MTd用於調試,/ MT用於發佈,我三重檢查,因爲這似乎是最常見的原因 –
這真的是它唯一可以*。 CRT是什麼定義'__fltused'符號。你是否鏈接了任何可能已經用不同版本的運行時庫編譯的其他LIB文件? –