win10搭建C++开发环境

环境要求

  • 文本编辑器
    • 写程序用的,可以用notepad,vi/vim,建议先不用IDE
  • C++编译器
    • 编写好的程序文件是源代码,人类可读的源。但机器并不认识,还要把源代码编译成机器语言,CPU才能按指定指令执行程序。
    • C++编译器会把程序编译成可执行文件。最常用的免费的是GNU的编译器。

GNU 的 C/C++ 编译器

  • Cygwin 提供了一整套 可移植操作系统接口 (Portable Operating System Interface,缩写:POSIX)层。重视兼容性优于性能。开发的程序需要把依赖的 DLL 一起发布。

  • MinGW 是基于 Cygmin 开发的。重视性能优于兼容性,不需要提供兼容层,因为是直接调用 Windows API。一般开发用 MinGW (Minimalist GNU for Windows)就够了,但是 MinGW 只能在 windows 上编译32位程序,而且很久不更新,不支持较新的 Windows API。

  • 推荐使用 MIinGW-w64,原来是 MinGW 的分支,后来发展成独立项目。不仅支持编译32位程序,也能编译64位程序,还能交叉编译-在32位系统上编译64位程序,64位系统上编译32位程序,而且一直在更新。

  • MinGW 异常机制

    • MinGW编译器在实现异常机制时,有三种可选方式:

      • SJLJ (setjmp/longjmp):可用于32/64位,但不是零代价的:即使不抛出异常,仍会有一定的性能损失(在最差情形下~15%)。
      • DWARF (DW2, dwarf-2):只能用于32位,没有永久的运行时开销,需要调用栈是dwarf-enabled,这意味着异常对于Windows system DLLs或Visual Studio编译的DLLs的异常不能被抛出。
      • SEH:零花销。
  • 总结:MinGW 就是开发 windows 应用的 GNU ToolChains(工具链,开发环境)

安装 MinGW-64

  • SourceForge.net上的MinGW-w64官方的下载站点 提供由MinGW-Builds等项目组制作的预编译版。编译器分64位版和32位版、分别包含sjlj、drawf、seh异常处理机制、分别支持POSIX线程模式或Win32线程模式。用户可根据需要下载不同版本。例如,64位的seh、POSIX线程的最新稳定版本的gcc包的下载目录为:Files --> Toolchains targetting Win64 --> Personal Builds --> mingw-builds-->8.1.0-->threads-posix-->seh --> MinGW-W64 Online Installer

  • 在线安装

    • 下载完成直接运行 mingw-w64-install.exe
    • 选择版本号以及机器的架构为 x86_64,其他默认即可


      image.png
    • 选择安装目录


      image.png
    • 下一步可能出现异常:The file has been downloaded incorrectly!
      • 貌似跟网络有关,在线下载安装包失败
  • 离线安装指定版本安装包(时间很长,够喝两杯咖啡的)


    image.png
  • 然后选择版本号,thread,exception,跟在线安装器一样,就会找到如下文件


    image.png

环境变量

  • 安装完成配置环境变量,把 MinGW-64/bin目录到path中

测试

  • 测试安装是否成功,命令行输入
gcc -v

推荐阅读更多精彩内容