c++ - GCC 与 Windows SDK?

标签 c++ visual-studio gcc

我收到了很多关于如何使用 GCC 构建 native Windows 应用程序的相互矛盾的信息。

基本上,我想从熟悉的角度学习 Windows 编程。我想了解哪些库需要包含哪些 header 等的细节。这样我就可以了解底层的实现。我觉得 Visual Studio 通过似乎有时不透明的构建过程带走了很多东西(令我沮丧的是,当我包含 header 时,库会自动链接,使我很难看到正在做什么什么)

编辑:感谢 Ben 和 Serge 指出最后一个陈述的错误。 VS 不会根据包含的 header 自动包含库,而是链接许多默认库,无论包含哪些 header ,但是只有翻译单元所需的函数/类等才会出现在最终的可执行文件中。

有没有一种方法可以使用 Windows API(即不是 libc)但使用不太“用户友好”的环境来为 Windows 进行开发?

我更愿意坚持使用 GCC(MinGW 等),但我对其他工具链持开放态度。我只是想了解一下 Visual Studio 的臃肿和抽象。

我可以只下载 Windows SDK 并开始使用 MinGW 进行构建吗?如果没有,我在哪里可以获得 native 开发所需的 header 和库?使用 minGW 之类的东西它能正确编译吗?

很多问题!

谢谢!

摘要:请参阅 Serge 非常有帮助的答案!

谢谢大家提供的信息!

最佳答案

如果您想进行命令行构建,没有什么可以阻止您编写自己的NMake文件,描述哪些文件使用哪些标志进行编译以及它们如何链接到自己的可执行文件中。

Windows 编译器是 cl.exe .

Windows 链接器是 link.exe

关于c++ - GCC 与 Windows SDK?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27135668/

相关文章:

visual-studio - Visual Studio 2010 版本控制和错误跟踪功能

c - 相同的 FLT_EVAL_METHOD,GCC/Clang 中的不同结果

c++ - 在 iOS 中使用 std::atomic

c++ - 如何选择应用程序应链接到的 VC 2008 DLL 的版本?

C# 以数组形式返回 json 结果

visual-studio - 为什么我在 Visual Studio 2010 C# 代码窗口中不断出现混合制表符和空格?

c++ - 场景图、共享指针和常量传播

C++:在不裁剪的情况下调整图像的 HSL

gcc - LLVM:-Wno-ignored-qualifiers 等价物?

c++ - MinGW/msys,链接器 (ld.exe) 没有找到 libpng (-lpng),即使它已安装,正在运行 xpdf 配置脚本