我在 MinGW 中为 WinAPI 编码
我还没有完全理解的一件事是 VC 可再发行组件, 我有一大堆问题
有人说这样的程序需要msvcrt.dll
- bot c++ 和 c 编译需要相同的库吗?
- 这是否适用于所有客户目标?
- 我必须重新分发它吗?我可以重新分配它吗?
- 我可以轻松摆脱这种外部依赖吗?
- 有没有其他编译器可以让我不携带这种不愉快的外部依赖? (我隐约记得听说它有问题 - 我听说它可能不是核心系统库,或者它不能免费使用和重新分发库)
我发现这里有问题,因为我想生成没有依赖性的小 exe,只调用系统 WinAPI,如果我使用 一些像 C 标准库函数函数我更喜欢它经济和静态编译,而不是任何第三方依赖
最佳答案
- MSVCRT.DLL 主要包含 C 运行时,而 MinGW 只能使用 C 部分。 C++ 二进制代码通常不能跨编译器使用。
- 这取决于您的“目标”。它可从 Windows 2000 获得。
- 没有。不。它是 Microsoft 专有代码,每个 Windows 版本的版本都略有不同。
- 没有。我不知道有成熟的替代 C 运行时 DLL。
- 您无需担心依赖性,因为它随处可用。 (请注意,这并不是一个很好的运行时,尤其是关于多字节字符。)
Microsoft 编译器可以链接“静态”库,因此生成的可执行文件仅依赖于系统 DLL,如 kernel32.dll、user32.dll 等。MinGW(目前)还不能做到这一点。
编辑:MSVCRT.DLL 问题的简明描述是 here .
关于windows - MinGW/MinGW64 链接和依赖于 `msvcrt.dll`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28783079/