2011-12-21 127 views
0

我在Visual Studio 2010中開發應用程序。調試和發佈可執行文件在我的PC上正常工作,但是當我嘗試在另一臺PC上運行它時<我得到MSVCR100.dll未發現錯誤。 這裏描述的問題: http://www.rhyous.com/2010/09/16/avoiding-the-msvcr100-dll-or-msvcr100d-dll/ 在網上搜索,發現您需要安裝Visual C++可再發行組件。Visual Studio C++ MSVCR100.dll錯誤運行時

有沒有一種方法來建立項目,以便不需要VC++ redistributable?

回答

0

是的,你可以靜態鏈接CRT(檢查項目設置)。但它會導致更大的可執行文件大小。

1

正如您鏈接的頁面中所述,您可以選擇將庫靜態構建到應用程序中,從而保證它們始終包含在內。這是在項目的屬性 - > C/C++ - >代碼生成 - >運行時庫(選擇多線程或調試,沒有DLL)中完成的。

如果你不想靜態鏈接這些,你可以在程序中包含運行時DLL;這對於在你的模塊和你的模塊之間共享一個特定的版本很有用,但是安裝正確的可再發行組件(並且出於安全原因允許升級等)是非常受歡迎的。

如果可能,您應該使用系統中的DLL,以允許將來的安全補丁應用於您的程序。可重新分發的版本只有幾MB,並且與各種操作系統版本兼容,所以要求用戶安裝它甚至將其包含在安裝程序中通常不是問題。

爲了避免完全使用它們也許是可能的,但稍微不太可行。你將不得不避免他們提供的任何代碼,而MSVCR與libc相當;大多數程序使用它的功能,它是系統的標準部分。