[英]SDL2, error LNK2005 objects already defined in libcmt
因此,這是一個常見錯誤,但是所有帖子都說我需要更加注意要包括的庫的版本。 我正在使用SDL2,OpenGL和SDL_Mixer ...除了堅持使用32位庫之外,我沒有其他選擇。
調試編譯正常,但除非將運行時庫設置為/ MD,否則發布會給我LNK2005錯誤。 我想避免這種額外的依賴性。 除非Visual Studio啟動發布版本,否則生成的可執行文件將停止對SDL初始化或某些OpenGL調用的響應。 因此,我遇到了某種多線程問題,但我還無法完全理解。 沒有什么幫助?
更新:/ FORCE:MULTIPLE允許使用/ MT編譯項目。 但是,與/ MD一樣,除非Visual Studio啟動發布版本,否則生成的可執行文件將崩潰。 這意味着什么?
UPDATE2:在SDL項目中使用/ MD。 崩潰只是調試器未捕獲的內存錯誤。 鏈接無關。
好吧,所以我看到的唯一其他選擇是
(1)忽略另一個導致LNK2005錯誤的庫(由於您在兩個地方定義了東西,所以它不知道使用哪個。由於忽略libcmt.lib導致了很多問題,請嘗試在另一個地方定義方法)。
2)在鏈接器命令行選項中使用/ FORCE:MULTIPLE,它將使它允許符號的多個定義。
重建SDL是一種選擇嗎? 如果是這樣的話
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.