這是一個非常具體的問題, - 我對此表示歉意。升級爲贏10,然後我的Direct3D11項目不會鏈接
我一直在使用Direct3D 11構建一個圖形化的實時應用程序。我在Win7操作系統上啓動了它。然後我升級到Win10,當我試着再次編譯解決方案時,鏈接器就像它已經陷入了硅微芯片的瘟疫一樣。
它在甚至不使用給定函數的對象中發出未解決的符號。
- __imp__wassert
- strlen的
- 晶圓廠
- __imp__CrtDbgReportW
- SPRT
- 多
我已經得出結論,大部分有問題的功能主要是C函數。我知道C函數不再包含在C++頭文件和庫中,因此我確保明確包含所有相關的C庫。
我已閱讀並遵循一些大多數其他人遇到的問題與Windows 10擰他們的代碼的解決方案。其中之一是這樣的:Upgraded to Windows 10 and now WAMP won't work
我也試過實際上告訴鏈接器在哪裏尋找-lib文件,以防編譯器或項目錯過了備忘錄。
在我的電腦,爲的Direct3D庫的位置是在這裏:C:\ Program Files文件(x86)的\的Windows套件\ 10 \ LIB \ 10.0.10586.0 \恩\ arm64
正如你所看到的,我我試圖強制它使用Win10 lib版本以防萬一這是一項要求。
我在一端開始嘗試和發現自己在做一些愚蠢的事:
- 我找了整整包括路徑看它這個已經開始的雪崩:失敗
- 我試圖刪除/ ZI編譯器選項:失敗
- 在當時重新鏈接的DirectX庫的所有不同版本的一個:失敗
- 明確列入vcrumtime.lib到其他連接庫:SUCCESS(除去一半的錯誤)
- 創建一個全新的項目,包括一切從頭開始:失敗
- 添加MSVCRTD.LIB:失敗
- 更改目標平臺以64:失敗
- 嘗試,包括在某些獨立的工具類stdio.h中:失敗
- 嘗試包括WINMM.LIB在連接:失敗
我漫遊什麼感覺就像一個十年(僅一個月IRL)在網上找了一些解決方案,但沒有。
我希望你們中的一些人知道我可能會做出什麼不好的事情。
所有建議都會有所幫助。
具體問題_great_!可悲的是,這其實並不是其中之一。 [MCVE]的時間... –
'__imp__wassert'你正在編譯Unicode嗎? '__imp__CrtDbgReportW'這是一個'_DEBUG'構建? 'um \ arm64'是你的目標平臺ARM64嗎? 'include the vcrumtime.lib'你是否靜態或動態鏈接CRT('/ MT [d]'或'/ MD [d]')? 「我已經閱讀並遵循了大多數有問題的其他人的解決方案。」老實說,我認爲你隨意地嘗試隨機事情使情況變得更糟。更好地嘗試回滾*所有*您的嘗試「修復」,然後發佈*原始*問題是什麼 - 具有完整的細節。 – dxiv