gcc 自动识别的文件扩展名,gcc/g++ -x 选项指定语言,不同 gcc 版本 -std 编译选项支持列表
對于執(zhí)行 C 或者 C++ 程序,需要借助 gcc(g++)指令來調(diào)用 GCC 編譯器。
- 對于以
.c為擴展名的文件,GCC會自動將其視為C源代碼文件 - 對于以
.cpp為擴展名的文件,GCC會自動將其視為C++源代碼文件
1. GCC自動識別的文件擴展名
除此之外,GCC 編譯器還可以自動識別多種擴展名,如下表所示,即根據(jù)不同的擴展名確定該文件該怎樣編譯。
注意,上表僅羅列了 GCC 編譯器可識別的與 C 和 C++ 語言相關(guān)的文件后綴名。除此之外,GCC 編譯器還支持 Go、Objective-C等編程語言的編譯。詳情請參考 GCC官網(wǎng)
如果當前文件的擴展名和上表 ,還能使用 GCC 編譯器嗎?答案是肯定的。只需要借助 -x選項(小寫)指明當前文件的類型即可。
示例 test 文件
#include <iostream>int main()
{std::cout << "hello,world" << std::endl;return 0;
}
顯然,這是一段完整的 C++ 語言程序,但由于其存儲在無擴展名的 test文件中,如果直接使用 g++ 指令調(diào)用 GCC 編譯器,則執(zhí)行會報錯:
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 可執(zhí)行文件。
-x 指令參數(shù)的含義:
-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++ 編譯標準也是不同的。
注意,表頭表示的是各個編譯標準的名稱,而表格內(nèi)部的則為 -std 可用的值,例如 -std=c89、-std=c11、-std=gnu90 等(表 2 也是如此)。
總結(jié)
以上是生活随笔為你收集整理的gcc 自动识别的文件扩展名,gcc/g++ -x 选项指定语言,不同 gcc 版本 -std 编译选项支持列表的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2022-2028年中国阻燃纤维行业市场
- 下一篇: GCC 编译 C++ 程序分步骤流程(预