2015-10-07 52 views
36

我剛開發了我的第一個C++程序,我想和我的一個朋友一起展示它。可悲的是,當他試圖打開該exe文件時,它會得到一個錯誤,指出「MSVCP140.dll丟失」。爲什麼會發生這個問題,他/我如何解決這個問題?MSVCP140.dll missing

回答

53

要麼讓你的朋友下載運行時DLL(@凱的答案),或編譯靜態鏈接的應用程序。

在visual studio中,在運行時庫中選擇​​,調試模式選擇/MTd,發佈模式選擇/MT

這將導致編譯器將運行時嵌入到應用程序中。可執行文件將會大得多,但它將運行時不需要任何運行時DLL。

+0

你可能會添加數字「hello world.exe」與動態鏈接和靜態鏈接有多大? – kay

+3

@Kay靜態鏈接通常只包含需要的內容,而不是庫中的所有內容。可執行文件的大小增加將取決於C運行時使用了多少。 – Andy

+0

實際上,除了要調試運行時庫之外,沒有必要鏈接到運行時的調試版本。 – user1810087

-1

這可能是C++運行時庫。由於它是一個DLL,它不包含在你的程序可執行文件中。你的朋友可以從微軟下載這些庫。

+1

對不起,-1。一個答案沿着*「這可能是什麼錯誤,你的朋友可以以某種方式解決這個問題」*不是一個答案。另外,CRT不只是一個DLL。 – IInspectable

52

您朋友的PC丟失的運行時支持的DLL的程序:

+1

這是應用程序作爲部署/安裝的一部分必須應對的事情之一,因爲並非應用程序使用的所有東西都內置在操作系統中。請參閱[部署原生桌面應用程序(Visual C++)](https://msdn.microsoft.com/en-us/library/zebw5zk9.aspx)。請注意,如果您的應用程序是Windows應用商店應用程序,則應用商店負責爲您部署Visual C++ CRT。 –

+0

儘管我已安裝完整的Visual Studio 2015,但我的PC仍然出現相同的錯誤。可再分發的安裝程序退出,並說已經安裝了更新的版本。有什麼想法嗎? – matth

2

這通常意味着你的朋友沒有爲Visual C微軟可再發行++。我當然假設你正在使用VC++而不是MingW或其他編譯器。由於你的朋友沒有安裝VS,所以不能保證他安裝了redist。

VC++ Distro