From 7267b86862033730aecff6253acc9d5127586950 Mon Sep 17 00:00:00 2001 From: Awin Huang Date: Mon, 26 Sep 2022 21:14:06 +0800 Subject: [PATCH] vault backup: 2022-09-26 21:14:06 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Affected files: .obsidian/workspace 01. 個人/02. 專注Study/C++/GCC.md --- .obsidian/workspace | 10 +++++----- 01. 個人/02. 專注Study/C++/GCC.md | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+), 5 deletions(-) create mode 100644 01. 個人/02. 專注Study/C++/GCC.md diff --git a/.obsidian/workspace b/.obsidian/workspace index 2469f27..50690fa 100644 --- a/.obsidian/workspace +++ b/.obsidian/workspace @@ -9,7 +9,7 @@ "state": { "type": "markdown", "state": { - "file": "00. Inbox/00. TODO.md", + "file": "01. 個人/02. 專注Study/C++/GCC.md", "mode": "source", "source": true } @@ -69,7 +69,7 @@ "state": { "type": "backlink", "state": { - "file": "00. Inbox/00. TODO.md", + "file": "01. 個人/02. 專注Study/C++/GCC.md", "collapseAll": false, "extraContext": false, "sortOrder": "alphabetical", @@ -86,7 +86,7 @@ "state": { "type": "outline", "state": { - "file": "00. Inbox/00. TODO.md" + "file": "01. 個人/02. 專注Study/C++/GCC.md" } } } @@ -116,6 +116,7 @@ }, "active": "828beb43bb437dd1", "lastOpenFiles": [ + "00. Inbox/00. TODO.md", "03. 資料收集/讀書筆記/20201224 - 寫作是最好的自我投資.md", "03. 資料收集/名言佳句.md", "03. 資料收集/每週外食.md", @@ -124,7 +125,6 @@ "02. 工作/01. Logitech/20210412 - TestCam.md", "02. 工作/01. Logitech/20210428 - Sega.md", "02. 工作/01. Logitech/20210512 - Kong.md", - "02. 工作/01. Logitech/20210716 - AutoStation.md", - "02. 工作/01. Logitech/20220601 - Sentinel.md" + "02. 工作/01. Logitech/20210716 - AutoStation.md" ] } \ No newline at end of file diff --git a/01. 個人/02. 專注Study/C++/GCC.md b/01. 個人/02. 專注Study/C++/GCC.md new file mode 100644 index 0000000..5059a6d --- /dev/null +++ b/01. 個人/02. 專注Study/C++/GCC.md @@ -0,0 +1,19 @@ +GCC的全稱是GNU Compiler Collection,是GNU工具鏈中的一種。GCC不僅支持C/C++語言,還支持Fortran/Ada/Java等語言的編譯。GCC和gcc是兩個概念,GCC是工具鏈的集合,裡面除了gcc/g++還包含了ccl,cclplus等組件。gcc/g++只是GCC工具鏈的一個子集。 + +## g++和gcc的區別 +gcc可以判斷出目標程序所使用編程語言的類別,會把xxx.c文件當作C語言編譯,把xxx.cpp文件當作C++語言編譯。而g++只把xxx.c和xxx.cpp一律都當作C++語言來編譯。在編譯C++文件的時候,g++會自動鏈接一些標準庫或基礎庫,而gcc不會。當正在編譯的C++代碼文件依賴STL標準庫的時候,為了使用STL,gcc命令需要增加參數`–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