-
GCC自动识别的常用扩展名介绍
所属栏目:[语言] 日期:2023-05-29 热度:6783
通过前面的学习我们知道,对于执行 C 或者 C++ 程序,需要借助 gcc(g++)指令来调用 GCC 编译器。并且对于以 .c 为扩展名的文件,GCC 会自动将其视为 C 源代码文件;而对于以 .cpp 为扩展名的文件,GCC 会自动将其视[详细]
-
gcc 和 g++ 的区别是什么呢
所属栏目:[语言] 日期:2023-05-29 热度:2514
实际上,只要是 GCC 支持编译的程序代码,都可以使用 gcc 命令完成编译。可以这样理解,gcc 是 GCC 编译器的通用编译指令,因为根据程序文件的后缀名,gcc 指令可以自行判断出当前程序所用编程语言的类别,比如:[详细]
-
GCC 使用的软件工具
所属栏目:[语言] 日期:2023-05-29 热度:1460
文章中列出的软件和 GCC 协同工作,目的是实现编译过程。有些是很基本的(例如 as 和 Id),而其他一些则是非常有用但不是严格需要的。尽管这些工具中的很多都是各种 UNIX 系统的本地工具,但还是能够通过 GNU 包 bi[详细]
-
GCC 安装的各个部分
所属栏目:[语言] 日期:2023-05-29 热度:7421
GCC 是由许多组件组成的。表 1 列出了 GCC 的各个部分,但它们也并不总是出现 的。有些部分是和语言相关的,所以如果没有安装某种特定语言,系统:中就不会出现相关的文件。
GCC 安装的各个部分
部分 描述[详细] -
源码安装GDB
所属栏目:[语言] 日期:2023-05-26 热度:3429
读者必须保证当前操作系统中有可以使用的编译器,比如最常用的 GCC 编译器(应同时支持 gcc 和 g++ 指令)。另外,源码安装 GDB 需要用到 Makefile 相关的知识,读者可完全遵循以下步骤“照猫画虎”地安装[详细]
-
GDB安装教程
所属栏目:[语言] 日期:2023-05-26 热度:878
基于 Linux 系统的免费、开源,衍生出了多个不同的 Linux 版本,比如 Redhat、CentOS、Ubuntu、Debian 等。这些 Linux 发行版中,有些默认安装有 GDB 调试器,但有些默认不安装。
判断当前 Linux 发行版是否安装有[详细] -
GDB是什么
所属栏目:[语言] 日期:2023-05-26 热度:8637
GDB 全称“GNU symbolic debugger”,从名称上不难看出,它诞生于 GNU 计划(同时诞生的还有 GCC、Emacs 等),是 Linux 下常用的程序调试器。发展至今,GDB 已经迭代了诸多个版本,当下的 GDB 支持调试多[详细]
-
GCC使用动态链接库
所属栏目:[语言] 日期:2023-05-26 热度:2570
动态链接库,又称为共享链接库。和静态链接库不同,采用动态链接库实现链接操作时,程序文件中哪里需要库文件的功能模块,GCC 编译器不会直接将该功能模块的代码拷贝到文件中,而是将功能模块的位置信息记录到文件中[详细]
-
GCC使用静态链接库
所属栏目:[语言] 日期:2023-05-26 热度:3967
静态链接库实现链接操作的方式很简单,即程序文件中哪里用到了库文件中的功能模块,GCC 编译器就会将该模板代码直接复制到程序文件的适当位置,最终生成可执行文件。
使用静态库文件实现程序的链接操作,既有优势[详细] -
GCC编译多文件项目
所属栏目:[语言] 日期:2023-05-26 热度:4631
在一个 C(或者 C++)项目中,往往在存储多个源文件,如果仍按照之前“先单独编译各个源文件,再将它们链接起来”的方法编译该项目,需要编写大量的编译指令,事倍功半。事实上,利用 gcc 指令可以同时处理[详细]
-
GCC -l选项:手动添加链接库
所属栏目:[语言] 日期:2023-05-26 热度:1967
链接器把多个二进制的目标文件(object file)链接成一个单独的可执行文件。在链接过程中,它必须把符号用对应的数据的内存地址替代,以完成程序中多个模块的外部引用。
而且,链接器也必须将程序中所用到的所有C[详细] -
GCC -o选项使用举例
所属栏目:[语言] 日期:2023-05-26 热度:2011
gcc -o选项用来指定输出文件,如果不使用 -o 选项,那么将采用默认的输出文件。例如默认情况下,生成的可执行文件的名字默认为 a.out。
如下是 gcc -o 指令的使用语法格式:
[root@bogon demo]# gcc [-E|-S|-c[详细] -
GCC-C指令
所属栏目:[语言] 日期:2023-05-26 热度:251
简单地理解,汇编其实就是将汇编代码转换成可以执行的机器指令。大部分汇编语句对应一条机器指令,有的汇编语句对应多条机器指令。相对于编译操作,汇编过程会简单很多,它并没有复杂的语法,也没有语义,也不需要做[详细]
-
gcc -S指令
所属栏目:[语言] 日期:2023-05-26 热度:1859
编译是整个程序构建的核心部分,也是最复杂的部分之一。所谓编译,简单理解就是将预处理得到的程序代码,经过一系列的词法分析、语法分析、语义分析以及优化,加工为当前机器支持的汇编代码。
通过给 gcc 指令添加[详细] -
gcc -E支持的常用选项
所属栏目:[语言] 日期:2023-05-25 热度:8009
除了 -C、-o 以外,根据实际场景的需要,gcc -E 后面还可以添加其它的选项,例如:
gcc -E 常用选项
选 项 功 能
-D name[=definition] 在处理源文件之前,先定义宏 name。宏 name 必须是在源文件和头文[详细] -
GCC编译C/C++程序
所属栏目:[语言] 日期:2023-05-25 热度:2857
GCC 编译器并未提供给用户可用鼠标点击的界面窗口,要想调用 GCC 编译器编译 C 或者 C++ 程序,只能通过执行相应的 gcc 或者 g++ 指令。本节将重点给大家讲解如何编写 gcc 或者 g++ 指令来编译 C、C++ 程序。
同样[详细] -
GCC -std编译标准
所属栏目:[语言] 日期:2023-05-25 热度:7237
要知道,任何一门编程语言都有相关的组织和团体在不停的维护和更新。原因很简单,时代在发展,编程语言如果停滞不前,最终就会被淘汰。
C++ 语言的发展也历经了很多个版本,包括 C++98、C++03(C++98 的修订版)、[详细] -
gcc 和 g++ 的区别
所属栏目:[语言] 日期:2023-05-25 热度:1983
实际使用中我们更习惯使用 gcc 指令编译 C 语言程序,用 g++ 指令编译 C++ 代码。需要强调的一点是,这并不是 gcc 和 g++ 的区别,gcc 指令也可以用来编译 C++ 程序,同样 g++ 指令也可以用于编译 C 语言程序。
那[详细] -
GCC 自动识别的常用扩展名
所属栏目:[语言] 日期:2023-05-25 热度:9299
对于执行 C 或者 C++ 程序,需要借助 gcc(g++)指令来调用 GCC 编译器。并且对于以 .c 为扩展名的文件,GCC 会自动将其视为 C 源代码文件;而对于以 .cpp 为扩展名的文件,GCC 会自动将其视为 C++ 源代码文件。[详细]
-
手动安装GCC编译器
所属栏目:[语言] 日期:2023-05-25 热度:129
注意,此方式需要耗费的时间较长(几个小时),但支持安装指定版本的 GCC 编译器,并适用于大多数 Linux 发行版(不同之处会有额外提示);同时,如果读者想对已安装的 GCC 编译器进行版本升级,也可以使用此方式。[详细]
-
快速安装GCC编译器
所属栏目:[语言] 日期:2023-05-25 热度:4102
要知道,每个 Linux 发行版都有自己的软件包管理工具,比如 CentOS 系统的 yum 包管理器、Ubuntu 系统的 apt 包管理器等等,并且大多数 Linux 发行版都提供有 GCC 编译器的二进制软件包。因此,我们可以直接“傻[详细]
-
GCC 是一个C语言编译器
所属栏目:[语言] 日期:2023-05-25 热度:1787
谈到 GCC,就不得不提 GNU 计划。GNU 全称 GNU's Not UNIX,又被称为“革奴计划”,由理查德·斯托曼于 1983 年发起。GNU 计划的最终目标是打造出一套完全自由(即自由使用、自由更改、自由发布[详细]
-
基于UDP的接收和发送函数
所属栏目:[语言] 日期:2023-05-25 热度:181
创建好 TCP 套接字后,传输数据时无需再添加地址信息,因为 TCP 套接字将保持与对方套接字的连接。换言之,TCP 套接字知道目标地址信息。但 UDP 套接字不会保持连接状态,每次传输数据都要添加目标地址信息,这相当于[详细]
-
谈UDP和TCP
所属栏目:[语言] 日期:2023-05-25 热度:4950
TCP 是面向连接的传输协议,建立连接时要经过三次握手,断开连接时要经过四次握手,中间传输数据时也要回复 ACK 包确认,多种机制保证了数据能够正确到达,不会丢失或出错。
UDP 是非连接的传输协议,没有建立连接[详细] -
TCP数据的传输过程分析
所属栏目:[语言] 日期:2023-05-24 热度:7512
建立连接后,两台主机就可以相互传输数据了。
TCP 套接字的数据交换过程
首先,主机A通过1个数据包发送100个字节的数据,数据包的 Seq 号设置为 1200。主机B为了确认这一点,向主机A发送 ACK 包,并将 Ack 号设[详细]
