Files
Obsidian-Main/01. 個人/02. 專注Study/C++/GCC.md
Awin Huang 7267b86862 vault backup: 2022-09-26 21:14:06
Affected files:
.obsidian/workspace
01. 個人/02. 專注Study/C++/GCC.md
2022-09-26 21:14:06 +08:00

20 lines
1.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
GCC的全稱是GNU Compiler Collection是GNU工具鏈中的一種。GCC不僅支持C/C++語言還支持Fortran/Ada/Java等語言的編譯。GCC和gcc是兩個概念GCC是工具鏈的集合裡面除了gcc/g++還包含了cclcclplus等組件。gcc/g++只是GCC工具鏈的一個子集。
## g++和gcc的區別
gcc可以判斷出目標程序所使用編程語言的類別會把xxx.c文件當作C語言編譯把xxx.cpp文件當作C++語言編譯。而g++只把xxx.c和xxx.cpp一律都當作C++語言來編譯。在編譯C++文件的時候g++會自動鏈接一些標準庫或基礎庫而gcc不會。當正在編譯的C++代碼文件依賴STL標準庫的時候為了使用STLgcc命令需要增加參數`lstdc++`。因此雖然gcc和g++都可以編譯C++語言程序但是使用g++會更方便一些。
## 常見文件副檔名
- 目標文件:
- xxx.o操作系統Linux, Mac
- xxx.obj, 操作系統windows
- 二進製文件:
- xxx(沒有後綴名), 操作系統Linux, Mac, FreeBSD,
- xxx.exe, 操作系統windows
- xxx.hex操作系統嵌入式系統
- 共享庫文件,也叫動態庫文件:
- xxx.dll, 操作系統windows
- xxx.so, 操作系統Linux
- xxx.dylib, 操作系統Mac\
- 靜態庫文件
- xxx.a