我知道這樣的問題已經被問到,但情況有點不同,所有關於該問題的答案都不適用於我。MSVCR90.DLL找不到
我想在VS2008中編譯一些C代碼,它不會創建一個EXE文件。此外,當我嘗試使用F5運行它,我得到:
此應用程序未能啓動 因爲MSVCR90.DLL沒有找到。
我做了一些Google搜索,它說這是因爲我的C++可再發行組件包未安裝。所以我安裝了它,重啓了所有的東西並再次嘗試。但是,唉,我仍然有同樣的錯誤。有沒有人有任何線索如何解決這個問題?
我知道這樣的問題已經被問到,但情況有點不同,所有關於該問題的答案都不適用於我。MSVCR90.DLL找不到
我想在VS2008中編譯一些C代碼,它不會創建一個EXE文件。此外,當我嘗試使用F5運行它,我得到:
此應用程序未能啓動 因爲MSVCR90.DLL沒有找到。
我做了一些Google搜索,它說這是因爲我的C++可再發行組件包未安裝。所以我安裝了它,重啓了所有的東西並再次嘗試。但是,唉,我仍然有同樣的錯誤。有沒有人有任何線索如何解決這個問題?
這聽起來像是你的VS2008安裝有問題,或者你的DLL搜索路徑有問題。 MSVCR90.DLL在安裝VS2008時安裝,您不必安裝任何其他可再發行組件包。
首先,我會檢查你的PATH環境變量,並確保沒有gobbledydook會破壞一些條目,如果你沒有發現問題,那麼我會卸載並重新安裝Visual Studio。
您也可以嘗試搜索MSVCR90.DLL(以及其他類似的DLL),並將它們移動到Windows/System32文件夾中。
如果你只是想現在就走,你可以做的另一件事是改變你的項目靜態鏈接到運行時庫,然後它甚至不會嘗試加載該DLL。轉到您的項目設置,配置屬性 - > C/C++ - >代碼生成,並將運行時庫從多線程DLL更改爲多線程(或任何不以DLL結尾的選項)。
這裏有一些事情在常規選項卡來檢查你對以項目的配置:
如果您收到特定鏈接的錯誤,說一些已定義: 這意味着,你有你的應用程序的某些部分(單獨林達被鏈接到你的exe文件),它們具有不同的運行時連接內置:
您可以:
確保這些庫用相同版本的Visual Studio爲您的應用程序編譯。
更改這些項目爲使用靜態運行:C/C++ - >代碼生成 - >運行時庫:/噸或MTD(以上同#4)
如果您仍然有一些具體的錯誤試着告訴鏈接器忽略某些庫:轉到鏈接器 - >忽略特定庫並放入要忽略的庫中。這是'libcmt.lib'或'libcmtd.lib'最常見的。知道以'd'結尾的lib通常是調試版本也很重要。如果你正在創建一個發佈版本,並且你正在'已經在libcmtd.lib中定義',這意味着你正在將一個發佈版本庫鏈接到一個調試庫。
如果你把完成的exe文件給別人,他們需要安裝最新的visual c運行庫來運行它。這隻適用於發佈版本AFAIK。 Visual Studio應該將所需的運行時間都發布和調試安裝到您的路徑中。該項目可能會爲運行時的錯誤版本意外設置附加依賴項。
看看this page有幫助。
如果您刪除與您的.exe相關聯的清單文件,您將得到相同的錯誤。
MSVCR90.dll未安裝在system32中,但在並排文件夾中,因此需要清單。
轉到您的項目設置,配置屬性 - > C/C++ - >代碼生成並將運行時庫從多線程DLL更改爲多線程,然後嘗試編譯但不會。然後將其更改爲多線程調試並嘗試編譯,但不會再次,然後將其更改回多線程DLL,然後它應該編譯並運行。
它理應在http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&displaylang=en Visual Studio 2008的運行時庫。是!安裝完成後,openoffice update可以正常工作。
將您的項目簡化爲最簡單的形式(例如'hello world')併發布代碼,makefile,構建日誌以及其他任何其他內容,我們可以爲您提供幫助。否則,你在黑暗中拍攝。 – 2008-11-16 03:16:13