力学笃行(二)Qt 编辑器 MinGW和MSVC

1. 编辑器简介

要想让这段代码在Linux上运行,我们需要使用GCC

  1. 预编译:将hello.c和stdio.h预编译为hello.i
  2. 编译:将hello.i编译为hello.s
  3. 汇编:将hello.s翻译为机器指令hello.o(.o目标文件)
  4. 链接:链接各种需要的库和其他目标文件(该hello程序不需要)得到可执行文件hello.out(相当于windows的.exe)

整个过程将高级语言翻译成了机器语言,而编译器,就是这样的一个工具。GCC可以完成从预编译编译,汇编,链接整个过程。

但是平时使用Visual Studio等软件时并没有接触到这个过程,因为VS是高度集成开发环境(IDE、Integrated Development Environment),集成了代码编辑器,编译器,调试器和图像化用户界面,上述所有程序编译和链接过程都用一步build构建带过了。

2. MinGW和MSVC

MinGW

MinGW(Minimalist GNU for Windows),它是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你在Windows平台生成本地的Windows程序而不需要第三方C运行时(C Runtime)库。MinGW 的编译器通常被称为 GCC 或 G++。

  • 标准库: MinGW 通常使用 GNU 的标准 C 库(glibc)或 MinGW-w64 中的 C 运行时库。它还可以使用 MinGW 专用的头文件和库,以便在 Windows 上开发。
  • 开发环境: MinGW 通常以类 Unix 的方式工作,可以使用命令行或与其他开发工具集成,通常是在 MSYS2 上开发
  • 库文件格式: MinGW 使用的是 GNU 工具链,因此它通常使用与 GNU 标准库兼容的库文件格式。这些库文件具有以 .a 为扩展名的静态库和以 .dll 为扩展名的动态链接库。运行时库:支持程序运行的基本函数的集合,一般是静态库lib或动态库dll。
  • 库的兼容性: MinGW 生成的库文件通常与 MSVC 生成的库文件不兼容。这意味着你不能将 MinGW 生成的对象文件与 MSVC 生成的库文件链接,反之亦然。

它是GCC的移植版本,在Windows平台上提供了GNU编译器、工具链和头文件库等。相比MSVC更轻量级,可以快速生成可执行文件,同时也支持大多数POSIX标准函数和库。如果您需要跨平台开发C++程序,并且需要使用GNU工具链和POSIX库,那么使用MinGW是一个不错的选择。

  • 优点
    跨平台,linux/windows
    相比MSVC更轻量级
  • 缺点
    MinGW无法利用生成的dump文件在windbg或VS下面定位到出错的代码

MSVC

MSVC是Microsoft Visual C++的缩写,:由微软开发的VC运行时库,被Visual Studio IDE所集成。如果只需在Windows平台上编写C++程序,并且需要使用Visual Studio提供的代码分析、调试等功能,那么使用MSVC是一个不错的选择。

  • 标准库: MSVC 使用 Microsoft 的 C 运行时库(CRT),这意味着它具有与 Windows API 更好的集成,但在一些情况下可能不够跨平台。

  • 库文件格式: MSVC 使用 Microsoft 的 C/C++ 标准库格式,这些库文件通常以 .lib 为扩展名,但也可以包含 .dll 动态链接库文件。

  • 库的兼容性: 如果你使用 MinGW 编译你的应用程序,你需要确保你使用的库是专门为 MinGW 编译的,或者在构建库时采用兼容的编译选项。

  • 优点
    qtcreator的debuger有功能缺陷,经常会出现变量无法查看的问题,棘手的bug还是需要在VS环境下进行调试。很多人的开发模式就是qtcreator写代码,VS下面做调试。

  • 缺点
    不能跨平台,只能windows。使用时,需预装Visual Studio。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小老鼠不吃猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值