igb*_*tiz 6 c winapi gcc mingw microsoft-runtime-library
几个问题:
是否正确理解MinGW本质上是采用gcc源并将其编译为windows的可执行文件,即gcc.exe?
MinGW wiki说"MinGW另一方面提供了Win32 API提供的功能." 这让我很困惑.默认情况下,Windows安装是否已提供公开Win32 API的Win32 API标头,这会使MinGW再次提供冗余?MinGW标题是否与Windows安装的标题不同?
当我有一个由MinGW gcc编译的目标文件时,我可以将它链接到Windows上的C运行时库吗?我想不是因为MinGW gcc生成的目标文件可能与Windows上的C运行时库不兼容(就像使用相同的调用约定).
“gcc 源”是什么意思?当您说“gcc 源代码”时,您可能指的是“GCC 编译器的源代码”。MinGW 是 GCC 的 Windows 版本,因此它可以获取任何 C 源代码并生成可执行文件,并且它是 GCC,因此它具有该编译器的功能。
我认为微软提供的头文件(例如windows.h和winusb.h)实际上与GCC不兼容。MinGW 项目包含与 GCC 兼容的头文件,因此您可以像ReadFile
从程序中一样调用 Windows 函数。上次我检查时,MinGW 只有一些 Microsoft 头文件;它缺少 winusb.h。
为什么要链接 Windows 运行时库?我知道跨编译器互操作是可能的,因为我曾经用 Microsoft C 编译器编写了一个 DLL,并从 MinGW (Qt) 程序中调用它。