文章插图
手册页部分_用户命令_用户命令cpp
/usr/lib/cpp [-BCHMpPRT] [-undef] [-Dname] [-Dname = def] [-Idirectory] [-Uname] [-Ydirectory] [input-file [output-file]]
3、gcc、g++
gcc和g++是什么 , 有什么区别?
发展至今(2020 年 6 月份) , GCC 编译器已经更新至 10.1.0 版本 , 其功能也由最初仅能编译 C 语言 , 扩增至可以编译多种编程语言 , 其中就包括 C++。
除此之外 , 当下的 GCC 编译器还支持编译 Go、-C , -C ++ , , Ada , D 和 BRIG(HSAIL)等程序 , 甚至于 GCC 6 以及之前的版本还支持编译 Java 程序 。但本教程主要讲解如何使用 GCC 编译器编译运行 C 和 C++ 程序 , 因此有关其它编程语言如何使用 GCC 编译器编译 , 将不再做具体讲解 。
那么 , 在已编辑好 C 语言或者 C++ 代码的前提下 , 如何才能调用 GCC 编译器为我们编译程序呢?很简单 , GCC 编译器已经为我们提供了调用它的接口 , 对于 C 语言或者 C++ 程序 , 可以通过执行 gcc 或者 g++ 指令来调用 GCC 编译器 。
值得一提的是 , 实际使用中我们更习惯使用 gcc 指令编译 C 语言程序 , 用 g++ 指令编译 C++ 代码 。需要强调的一点是 , 这并不是 gcc 和 g++ 的区别 , gcc 指令也可以用来编译 C++ 程序 , 同样 g++ 指令也可以用于编译 C 语言程序 。
那么 , gcc 和 g++ 的区别是什么呢?接下来就给读者做详细的讲解 。
实际上 , 只要是 GCC 支持编译的程序代码 , 都可以使用 gcc 命令完成编译 。可以这样理解 , gcc 是 GCC 编译器的通用编译指令 , 因为根据程序文件的后缀名 , gcc 指令可以自行判断出当前程序所用编程语言的类别 , 比如:
当然 , gcc 指令也为用户提供了“手动指定代表编译方式”的接口 , 即使用 -x 选项 。例如 , gcc -xc xxx 表示以编译 C 语言代码的方式编译 xxx 文件;而 gcc -xc++ xxx 则表示以编译 C++ 代码的方式编译 xxx 文件 。有关 -x 选项的用法 , 后续会给出具体样例 。
但如果使用 g++ 指令 , 则无论目标文件的后缀名是什么 , 该指令都一律按照编译 C++ 代码的方式编译该文件 。也就是说 , 对于 .c 文件来说 , gcc 指令以 C 语言代码对待 , 而 g++ 指令会以 C++ 代码对待 。但对于 .cpp 文件来说 , gcc 和 g++ 都会以 C++ 代码的方式编译 。
4、问:c语言预处理、编译、汇编、链接这四个过程 , 在linux分别由哪些实现方式
答复如下:
在Linux系统上 , C语言预处理、编译、汇编和链接这四个过程可以使用以下工具实现:
预处理 - 可以使用GNU C(cpp)工具进行预处理 。例如 , 在终端中输入以下命令来生成预处理后的代码:
cpp hello.c > hello.i
编译 - 可以使用GCC(GNU)或Clang等C语言编译器进行编译 。例如 , 在终端中输入以下命令将预处理后的代码编译成目标文件:
gcc -c hello.i -o hello.o
汇编 - 可以使用GNU(gas)或其他汇编器将编译后的目标文件转换为汇编代码 。例如 , 在终端中输入以下命令将目标文件汇编成汇编代码:
objdump -d hello.o > hello.s
- “十大最美中国女演员”名单出炉,刘亦菲杨颖落榜,热巴实至名归 中国十大美女明星
- 苏州户外
- 我国的伟大发明 中国的十大发明
- 世界各国的代表美食你知道几个?27种美味,我喜欢最后一个 世界十大美食排行榜
- 历史著名事件,春秋时期之齐桓公称霸 春秋历史之最
- 历代王朝:历史上最有骨气的王朝,不是汉朝、不是唐朝? 我行历史之最
- 春运被誉为人类历史上规模最大的、周期性的人类大迁徙 春运历史之最
- 幼儿十大最适合的食物 幼儿世界之最
- 步云山
- 杭州到北京高铁