5

我已經下載並編譯了一個開源C++應用程序FrhedC++可執行文件 - MSVCR100.dll未找到錯誤

當我運行我編譯的版本時,它需要MSVCR100和其他幾個dll文件(Visual C++可再發行組件的一部分)。但是,當我運行原始的預編譯的Frhed可執行文件時,它將在沒有安裝任何C++可再發行組件包的情況下運行。

我是否必須修改任何編譯選項才能將程序與C++可再發行組件庫鏈接?

回答

13

原來的程序可能是靜態鏈接,而你試圖動態鏈接你的可執行文件,這會導致較小的文件,但裏面MSVCR100.dll(在Microsoft C運行時庫的V10)對功能的依賴,這將已經包含在可執行文件中,如果你是靜態鏈接。

要靜態鏈接DLL,請進入項目屬性並將構建模式從MD更改爲MT。在Visual Studio 2010/2012中,該項目屬性是C/C++ - >代碼生成 - >運行時庫。

7

簡短的回答是是的,較長的答案是,長得好。

圖書館msvcr100.dllDLL implementation of the C run-time10.0版本(即Visual Studio 2010的版本),你可能通過使用/ MD編譯選項要求。爲避免使用動態鏈接版本的運行時,可以使用/ MT選項,並靜態鏈接運行時。

或者,您可以與redistribute msvcr100.dll (and other files)一起使用您的程序。