簡體   English   中英

鏈接到系統C庫msvcrt.dll

[英]Link to the system C library msvcrt.dll

在Windows中,有一個默認的C庫msvcrt.dll。

是否可以編寫僅使用msvcrt.dll函數的簡單C程序? 這將減輕安裝最新VC運行時的需要。

我認為一種可能的方法是顯式指定/ NODEFAULTLIB,並使用dll導入過程導入msvcrt.dll函數。

有人有線索嗎?

你可以使用MinGW-w64 GCC,它鏈接到msvcrt.dll ,正是因為你說的原因。

你可以在這里找到下載。 如果您不想重新分發任何DLL,可以使用-static-libgcc -static-libstdc++鏈接程序。

話雖這么說,你可以簡單地將msvcr*.dll文件與可執行文件一起發送,無需安裝任何東西。

您不想使用msvcrt.dll。

  • 它很老,因此不符合現代C運行時庫規范。
  • 它主要用於向后兼容,並由具有特殊要求的某些系統組件使用。
  • 如果發現安全問題,您不能指望它會被廣泛修補。
  • 無法保證使用現代編譯器創建的二進制文件與msvcrt.dll中的ABI兼容。
  • 現代C和C ++編譯器在優化,設置和拆卸方面擁有對運行時庫的深入了解和期望,因此您不應混合使用它們。

使用編譯器附帶的運行時庫。 如果您不想擔心重新分發它,可以靜態鏈接到它,或者您可以閱讀有關使用您的應用程序重新分發它的正確方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM