内容纲要

编译器

目前C语言的编译器有多种,其中最广泛的就是GNU 的 C/C++ 编译器和Clang编译器。

GCC与Clang区别

  • GCC特性:除支持C/C++/ Objective-C/Objective-C++语言外,还是支持Java/Ada/Fortran/Go等;当前的Clang的C++支持落后于GCC;支持更多平台;更流行,广泛使用,支持完备。

  • Clang特性:编译速度快;内存占用小;兼容GCC;设计清晰简单、容易理解,易于扩展增强;基于库的模块化设计,易于IDE集成;出错提示更友好。

  • Clang采用的license是BSD,而GCC是GPLv3

下载

访问GCC官网来查看gcc的安装说明,其中mingw是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合。使用mingw来进行编译c,打开下载页https://osdn.net/projects/mingw/downloads/68260/mingw-get-setup.exe/进行下载。由于mingw停止更新,现阶段使用最新更新的MinGW-w64来代替。打开下载页https://sourceforge.net/projects/mingw-w64/选择相应版本,由于一系列问题建议下载离线版进行解压安装。

版本选择

异常处理模型

  • 其中seh 性能比较好,但不支持 32位。 sjlj 稳定性好,支持32位,建议选择seh。
  • dwarf的性能要优于sjlj ,但是它不支持64位,建议选择 dwarf。

环境变量

右键我的电脑选择属性 > 高级系统设置 > 环境变量 > 找到系统变量将安装或解压后的目录文件的bin目录添加到path里,如:”D:\Program Files\mingw64\bin“。

在使用win+r键打开运行输入cmd在命令提示符使用gcc如下所示即为安装成功:

C:\Users\Qsky8>gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=D:/Program\ Files/mingw64/bin/../libexec/gcc/x86_64-w64-mingw32/8.1.0/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../../../src/gcc-8.1.0/configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --prefix=/mingw64 --with-sysroot=/c/mingw810/x86_64-810-win32-seh-rt_v6-rev0/mingw64 --enable-shared --enable-static --disable-multilib --enable-languages=c,c++,fortran,lto --enable-libstdcxx-time=yes --enable-threads=win32 --enable-libgomp --enable-libatomic --enable-lto --enable-graphite --enable-checking=release --enable-fully-dynamic-string --enable-version-specific-runtime-libs --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-bootstrap --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-gnu-as --with-gnu-ld --with-arch=nocona --with-tune=core2 --with-libiconv --with-system-zlib --with-gmp=/c/mingw810/prerequisites/x86_64-w64-mingw32-static --with-mpfr=/c/mingw810/prerequisites/x86_64-w64-mingw32-static --with-mpc=/c/mingw810/prerequisites/x86_64-w64-mingw32-static --with-isl=/c/mingw810/prerequisites/x86_64-w64-mingw32-static --with-pkgversion='x86_64-win32-seh-rev0, Built by MinGW-W64 project' --with-bugurl=https://sourceforge.net/projects/mingw-w64 CFLAGS='-O2 -pipe -fno-ident -I/c/mingw810/x86_64-810-win32-seh-rt_v6-rev0/mingw64/opt/include -I/c/mingw810/prerequisites/x86_64-zlib-static/include -I/c/mingw810/prerequisites/x86_64-w64-mingw32-static/include' CXXFLAGS='-O2 -pipe -fno-ident -I/c/mingw810/x86_64-810-win32-seh-rt_v6-rev0/mingw64/opt/include -I/c/mingw810/prerequisites/x86_64-zlib-static/include -I/c/mingw810/prerequisites/x86_64-w64-mingw32-static/include' CPPFLAGS=' -I/c/mingw810/x86_64-810-win32-seh-rt_v6-rev0/mingw64/opt/include -I/c/mingw810/prerequisites/x86_64-zlib-static/include -I/c/mingw810/prerequisites/x86_64-w64-mingw32-static/include' LDFLAGS='-pipe -fno-ident -L/c/mingw810/x86_64-810-win32-seh-rt_v6-rev0/mingw64/opt/lib -L/c/mingw810/prerequisites/x86_64-zlib-static/lib -L/c/mingw810/prerequisites/x86_64-w64-mingw32-static/lib '
Thread model: win32
gcc version 8.1.0 (x86_64-win32-seh-rev0, Built by MinGW-W64 project)

编译命令

可以在源码目录下使用如下命令进行编译:

gcc 文件名.c

默认编译的文件名为a.exe,不建议。

gcc 文件名.c -o 目标文件名.exe

使用如上命令来进行自定义文件名。

也可对编译器安装路径bin目录下的gcc.exe创建副本并改名为cc.exe,将mingw32-make.exe改名为make.exe来模仿linux的make命令。

make 文件名

如上命令即可生成文件名.exe可执行文件。

编辑器

可以通过使用IDE(集成开发环境)来简化C语言的编码。

visual studio

打开微软官网下载页https://visualstudio.microsoft.com/zh-hans/downloads/,其中学习选择社区版(Community)就可以。visual studio是C语言开发最全最好用的IDE,但是体积过于庞大。

codeblocks

codeblocks是由C++开发的轻量级IDE(普通学习需求建议使用),打开官网下载页http://www.codeblocks.org/downloads/binaries选择相应版本,codeblocks依赖于编译器,如果本地已经安装gcc等编译器可以安装不带mingw版本的codeblocks,如果未安装建议安装集成gcc编译器的版本。

版本

还有dev-c++等IDE,可根据自己喜好使用。

最后修改日期: 2020年11月27日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。