GCC教程
GCC是什么,对于 GCC 的认知,很多读者还仅停留在 “GCC 是一个 C 语言编译器” 的层面,是很片面的。从本节开始,我将带领大家系统学习 GCC,本节先带领大家系统地了解一下 GCC。
GCC下载安装
GCC下载安装,由于 Linux 操作系统的自由、开源,在其基础上衍生出了很多不同的 Linux 操作系统,如 CentOS、Ubuntu、Debian 等。这些 Linux 发行版中,大多数都默认装有 GCC 编译器(版本通常都较低)。
Windows安装GCC
MinGW,MinGW 是指只用自由软件来生成纯粹的 Win32 可执行文件的编译环境,它是 Minimalist GNU on Windows 的略称。实际上 MinGW 并不是一个单纯的 C 语言 和 C++ 编译器,而是一套 GNU 工具集合。除开 GCC 以外。
Sublime Text运行C和C++
Sublime Text运行C和C++程序,Sublime Text 是一款当下非常流行的文本编辑器,其功能强大(提供有众多的插件)、界面简洁、还支持跨平台使用(包括 Mac OS X、 Linux 和 Windows)。
VSCode运行C和C++程序
VSCode运行C和C++程序,Sublime Text 和 Visual Studio Code(后续简称 VS Code)作为当下最热门的 2 款代码编辑器,该如何使用 VS Code 运行 C 和 C++ 程序呢?
GCC的组成
GCC的组成,GCC 是由许多组件组成的。下表列出了 GCC 的各个部分,但它们也并不总是出现的。有些部分是和语言相关的,所以如果没有安装某种特定语言,系统:中就不会出现相关的文件。
GCC与G++区别
GCC与G++区别,发展至今(2020 年 6 月份),GCC 编译器已经更新至 10.1.0 版本,其功能也由最初仅能编译 C 语言,扩增至可以编译多种编程语言,其中就包括 C++。
GCC文件扩展名
GCC文件扩展名,通过前面的学习我们知道,对于执行 C 或者 C++ 程序,需要借助 gcc(g++)指令来调用 GCC 编译器。并且对于以 .c 为扩展名的文件,GCC 会自动将其视为 C 源代码文件。
GCC -std编译标准一览表
GCC -std编译标准一览表,C语言版本,要知道,任何一门编程语言都有相关的组织和团体在不停的维护和更新。原因很简单,时代在发展,编程语言如果停滞不前,最终就会被淘汰。
GCC编译C和C++
GCC编译C和C++,通过前面章节的学习我们知道,GCC 编译器并未提供给用户可用鼠标点击的界面窗口,要想调用 GCC 编译器编译 C 或者 C++ 程序,只能通过执行相应的 gcc 或者 g++ 指令。
GCC -E选项
GCC -E选项,GCC -E选项:对源程序做预处理操作,通过前面的学习我们知道,根据源代码文件后缀名的不同,gcc 指令可以自行判断出该源程序是由哪种编程语言编写。
GCC S选项
GCC -S选项:编译非汇编文件,我们知道,从 C 语言 和 C++ 源代码生成可执行文件需要经历 4 个过程,分别为预处理、编译、汇编和链接。
GCC c选项
GCC c选项,GCC -c选项:生成目标文件,我们知道,从 C、 C++ 源代码生成可执行文件要经历 4 个过程,分别为预处理、编译、汇编和链接。
GCC o选项
GCC -o选项:指定输出文件,gcc -o 选项用来指定输出文件,如果不使用 -o 选项,那么将采用默认的输出文件。例如默认情况下,生成的可执行文件的名字默认为 a.out。
GCC l选项
GCC -l选项:手动添加链接库,链接器把多个二进制的目标文件(object file)链接成一个单独的可执行文件。
GCC分布编译C++
GCC分布编译C++,通过前面几节的讲解,已经就 gcc(g++)指令可用的 -E、-S、-c 以及 -o 选项的功能和用法做了详细的讲解。
GCC编译多个文件
GCC编译多个文件,通过前面几节的学习,读者已经了解了如何使用 gcc(g++)指令调用 GCC 编译器编译(包括预处理、编译、汇编和链接)C 或者 C++ 源代码。
GCC使用动态库和静态库
GCC使用动态库和静态库,我们知道,C 和 C++ 程序从源文件到生成可执行文件需经历 4 个阶段,分别为预处理、编译、汇编和链接,本节将重点围绕链接阶段,对静态链接库和动态链接库做详细的讲解。
GCC使用静态库
GCC使用静态库,Linux 下的静态链接库是以 .a 结尾的二进制文件,它作为程序的一个模块,在链接期间被组合到程序中。和静态链接库相对的是动态链接库(.so 文件)。
GCC使用动态库
GCC使用动态库,Linux 下动态链接库(shared object file,共享对象文件)的文件后缀为 .so,它是一种特殊的目标文件(object file),可以在程序运行时被加载(链接)进来。
动态库显式调用
显式调用动态链接库的过程,类似于使用 malloc() 和 free()( C++ 中使用 new 和 delete)管理动态内存空间,需要时就申请,不需要时就将占用的资源释放。
GCC找不到库文件
GCC找不到库文件,关于 GCC 提示找不到指定库文件的这个问题,通常出现在以下两个场景中, 利用静态库或者动态库文件实现链接操作(生成可执行文件)时,GCC 可能会提示“xxx:No such file or directory”(其中 xxx 表示查找失败的静态库或者动态库)。