gcc 自动识别的文件扩展名,gcc/g++ -x 选项指定语言,不同 gcc 版本 -std 编译选项支持列表
对于执行 C
或者 C++
程序,需要借助 gcc
(g++
)指令来调用 GCC
编译器。
- 对于以
.c
为扩展名的文件,GCC
会自动将其视为C
源代码文件 - 对于以
.cpp
为扩展名的文件,GCC
会自动将其视为C++
源代码文件
1. GCC自动识别的文件扩展名
除此之外,GCC
编译器还可以自动识别多种扩展名,如下表所示,即根据不同的扩展名确定该文件该怎样编译。
注意,上表仅罗列了 GCC
编译器可识别的与 C
和 C++
语言相关的文件后缀名。除此之外,GCC
编译器还支持 Go
、Objective-C
等编程语言的编译。详情请参考 GCC官网
如果当前文件的扩展名和上表 ,还能使用 GCC
编译器吗?答案是肯定的。只需要借助 -x
选项(小写)指明当前文件的类型即可。
示例 test 文件
#include <iostream>int main()
{std::cout << "hello,world" << std::endl;return 0;
}
显然,这是一段完整的 C++
语言程序,但由于其存储在无扩展名的 test
文件中,如果直接使用 g++
指令调用 GCC
编译器,则执行会报错:
wohu@ubuntu:~/cpp/src$ g++ test
test: file not recognized: File format not recognized
collect2: error: ld returned 1 exit status
wohu@ubuntu:~/cpp/src$
可以看到,GCC
编译器无法识别 test
这个文件。这种情况下,就必须使用 -x
选项手动为其指定文件的类型,例如:
wohu@ubuntu:~/cpp/src$ g++ -xc++ test
wohu@ubuntu:~/cpp/src$ ls
a.out test
wohu@ubuntu:~/cpp/src$ ./a.out
hello,world
wohu@ubuntu:~/cpp/src$
可以看到,通过为 g++
指令添加 -xc++
选项,表明当前 test 为 C++
语言程序文件,由此 GCC
编译器即可成功将其编译为 a.out
可执行文件。
-x
指令参数的含义:
-xc
:指定 C 语言文件-xc++
:指定 C++ 语言文件-xc-header
:C 语言头文件-xc++-heade
:C++ 程序头文件
2. GCC -std 编译标准支持项
对于编译 C
、C++
程序来说,借助 -std
选项即可手动控制 GCC
编译程序时所使用的编译标准。也就是说,
- 当使用
gcc
指令编译C
语言程序时,我们可以借助-std
选项指定要使用的编译标准; - 当使用
g++
指令编译C++
程序时,也可以借助-std
选项指定要使用的编译标准;
-std
选项的使用方式很简单,其基本格式如下:
gcc/g++ -std=编译标准
示例如下:
g++ test.cpp -o test -std=c++11
注意,不同版本的 GCC
编译器,所支持使用的 C/C++
编译标准也是不同的。
注意,表头表示的是各个编译标准的名称,而表格内部的则为 -std 可用的值,例如 -std=c89、-std=c11、-std=gnu90 等(表 2 也是如此)。
gcc 自动识别的文件扩展名,gcc/g++ -x 选项指定语言,不同 gcc 版本 -std 编译选项支持列表相关推荐
- c语言 m文件是什么,M文件扩展名 - 什么是.m以及如何打开? - ReviverSoft
你在这里因为你有,有一个文件扩展名结尾的文件 .m. 文件与文件扩展名 .m 只能通过特定的应用程序推出.这有可能是 .m 文件是数据文件,而不是文件或媒体,这意味着他们并不是在所有观看. 什么是 ...
- c语言中hpp是什么文件,HPP文件扩展名 - 什么是.hpp以及如何打开? - ReviverSoft
你在这里因为你有,有一个文件扩展名结尾的文件 .hpp. 文件与文件扩展名 .hpp 只能通过特定的应用程序推出.这有可能是 .hpp 文件是数据文件,而不是文件或媒体,这意味着他们并不是在所有观 ...
- 根据文件扩展名得到文件对应该类型Icon方法
2019独角兽企业重金招聘Python工程师标准>>> 根据文件扩展名得到文件对应该类型Icon方法 package com.fleety.util; import java.awt ...
- Response.setContentType类型按文件扩展名首字母分类大全
文件扩展名首字母 自定义扩展名 a b c d e f g h i j k l m n o p q r s t u v w x y z 数字开头扩展名 自定义扩展名 文件扩展名 Content-Typ ...
- 常见文件扩展名及其说明(转)
常见文件扩展名及其说明(转)[@more@]AAM Authorware shocked文件AAS Authorware shocked包ABF Adobe二进制屏幕字体ABK CorelDRAW自动 ...
- 【无标题】常见文件扩展名(后缀)及其对应文件类型和功能
Windows/linux通过文件的后缀名来区分各种不同的文件,同种类型的文件可以使用相同的文件后缀名也称文件的扩展名,本质或者说差异所在是文件根据后缀区分文件属性和存储格式,不同的文件类型就像不同的 ...
- Windows 常见文件扩展名和说明
Windows 常见文件扩展名和说明 A ACE:Ace压缩档案格式 ACT:Microsoft office助手文件 AIF,AIFF:音频互交换文件,Silicon Graphic and Mac ...
- 文件扩展名,你知道这些吗?(续)
----- I ------- ICA Citrix文件 ICB Targa位图文件 ICC Kodak打印机格式文件 ICL 图标库文件 ICM 图形颜色匹配配置文件 ICO Windows图标 I ...
- Go 学习笔记(53)— Go 标准库之 path(判断绝对路径、拆分目录和文件、组合路径、返回路径目录、获取路径最后文件名、获取文件扩展名、路径匹配规则)
1. 概述说明 import "path" path 实现了对斜杠分隔的路径的实用操作函数. 2. 主要函数 2.1 func IsAbs func IsAbs(path stri ...
最新文章
- 分享10个原生JavaScript技巧
- 通过python实现超市购物系统(通过列表简单实现版)
- JavaMail学习之一-邮件传输协议
- java的知识点30——设计模式
- 文档协同编辑帮助企业迎接大数据时代
- 是什么故障码_大众途观报P2187、P0101故障,差点就换发动机了
- Java JDK1.8新特性之四大函数式接口
- Linux下Kafka单机安装配置
- C++调用C#编写的DLL【转】
- java面试题:2018年6月
- 两台android相互ADB实现一台安卓手机给另一台安卓手机ADB
- 利用mk802(rk3066处理器)架设linux网站
- 太极图php代码,如何实现太极图
- Linux压缩、解压、打包文件 修改文件所属组
- BUUCTF RSA题目全解3
- 【历史上的今天】4 月 28 日:人工智能理论之父出生;大众点评上线;苹果开设 iTunes 音乐商店
- aria2简单下载脚本
- 美团/饿了么外卖CPS联盟返利公众号小程序裂变核心源码
- 量子计算(七):量子系统
- Linux进程内存分析pmap命令