链接到系统C库msvcrt.dll
Link to the system C library msvcrt.dll
在Windows中,有一个默认的C库msvcrt.dll。
是否可以编写仅使用msvcrt.dll功能的简单C程序?这将减轻安装最近的VC运行时的需求。
我认为一种可能的方法是明确指定/nodefaultlib,并使用dll导入过程导入msvcrt.dll functions。
有人有线索吗?
您可以使用mingw-w64 gcc,它链接到 msvcrt.dll
的原因是您说的原因。
您可以在这里找到下载。如果您不想重新分配任何DLL,则可以将程序链接到-static-libgcc -static-libstdc++
。
话虽如此,您只需将msvcr*.dll
文件与可执行文件一起运送,无需安装任何内容。
您不想使用msvcrt.dll。
- 它很旧,因此不符合现代C运行时间库规格。
- 它主要存在于向后兼容性和具有特殊要求的某些系统组件的使用。
- 您不能指望如果发现安全问题会被广泛修补。
- 不能保证用现代编译器制造的二进制文件将与msvcrt.dll中的ABI兼容。
- 现代C和C 编译器在优化,设置和拆除方面对其运行时库具有深入的知识和期望,因此您不应该混合并匹配它们。
使用编译器随附的运行时库。如果您不想担心将其重新分配,则可以从静态上链接到它,也可以阅读有关将其重新分配给您的应用程序的正确方法。
相关文章:
- 挂起和取消挂起一个文件DLL
- std::threads可以从Windows DLL中的全局变量创建/销毁吗?
- 导入库可以跨dll版本工作吗
- 从C++dll访问C#中的一行主要参数
- 链接到自行创建的dll失败
- 为什么使用 P/Invoke 调用 dll 时,某些计算机中的 LoadLibrary 失败?
- 在调用FreeLibrary后,释放动态链接到具有相同版本的CRT堆的DLL的内存
- 如何指定我希望我的LIB链接到的DLL文件?-Visual Studio 2019
- 如何将图像传输到c++(dll)中的缓冲区,然后在c#的缓冲区中读/写
- C++:将外部库链接到dll库
- 在 Windows 上,是否可以让 dll 在不使用 PATH 环境变量的情况下在另一个文件夹中查找依赖项?
- 代码在 msvcrt .dll函数上设置断点失败
- 为什么我不能在另一台电脑上运行自己的dll(msvcrt.dll被错过)
- 链接到系统C库msvcrt.dll
- LNK 2005链接器出现msvcrt.lib(MSVCR90.dll)问题
- 是否可以在不安装可分发的 VC++ 包的情况下将 MSVCRT DLL 与我的应用捆绑在一起
- vc++2008安装项目msvcrt.dll
- 将针对msvcrt.dll编译的库链接到Visual Studio 10 c++应用程序中
- crt0 是否加载 msvcrt.dll
- Qt 5.4.0部署问题- msvcrt.dll中缺少vsprintf_s