2021年8月9日 星期一


GNU的核心,稱為Hurd,是自由軟體基金會發展的重點,
但是其發展尚未成熟。
在實際使用上,多半使用Linux核心、FreeBSD等替代方案,作為系統核心,
其中主要的作業系統是Linux的發行版。
Linux作業系統包涵了Linux核心與其他自由軟體計畫中的GNU組件和軟體,
可以被稱為GNU/Linux(見GNU/Linux命名爭議)。


許多程式都是在GNU環境開發,無法直接在windows 系統直接使用,就要靠Cygwin 和MinGW等軟體在Windows中,建立GNU開發環境。

Cygwin 模擬出POSIX環境,能編譯並運行大部分Unix-like程式

MinGW 只能用來編譯Windows系統執行的程式 (toolchain)



MSYS其實也是從Cygwin改版過來的,但它更在乎與GNU相關的事物,
也因此沒有如Cygwin那樣肥大的缺點。
而因為MSYS的長期停止更新,MSYS2後來便出現了。
MSYS2繼承了MSYS的理念,整合了32位元和64位元的MinGW,
並使用「pacman」來管理套件,讓原本沒有什麼擴充能力的MSYS,
也可以自由且迅速地安裝各式各樣的套件了。


Using GCC with MinGW install 官方說明

MSYS2 說明

msys2 有5種環境

MinGW 說明

MSYS2 簡單教學



 下載 Visual Studio Code

下載 msys2-x86_64-20210725.exe


管理員執行 MSYS2 MSYS

執行下列指令安裝系統

1. pacman -Syu

2. pacman -Su

3. pacman -S mingw-w64-x86_64-toolchain

4. pacman -S vim
文字編輯器
5. pacman -S mingw-w64-x86_64-clang



安裝 3. 跟 5. 不同的環境/子系統




舊的安裝方法,不建議使用



MinGW install select item (Base & g++)

  • Base

A Basic MinGW Installation

This meta package provides a basic GCC installation, and includes the C compiler, linker and other binary tools, the runtime libraries and windows API support, mingw32-make, and a debugger. Other components can be added manually as needed.

  • g++

The GNU C++ Compiler

This package provides the MinGW implementation of the GNU C++ language compiler. This is an optional component of the MinG W Compiler Suite; you require it only if you wish to compile programs written in the C++ language



VS Code 中安裝套件, C/C++ ,還要做一些設定讓VSCode 知道要使用,
哪一個編譯器、include 搜尋位置、如何偵錯的方式。







  • 1. c_cpp_properties.json

主要用來設定包含標頭檔案的路徑,設定 C/C++ 支援的版本號等等。


includePath 需要導向MinGW的標頭檔
intelliSenseMode 設定為clang-x64模式
  • 輸入快捷鍵 Ctrl +Shift + P (or F1) ,輸入 edit 找到 Edit configurations(UI),

即可產生 c_cpp_properties.json


  • 2. tasks.json

用在 vscode 中輔助程式編譯的模組,可以代你執行類似於在命令列輸入“gcc hello.c -o hello”命令的操作,你只要在圖形介面下操作即可生成可執行檔案。

  • 單獨產生tasks.json

按下 F1,輸入並選擇:Tasks: Configure Task

From the main menu, choose Terminal > Configure Default Build Task. In the dropdown, which will display a tasks dropdown listing various predefined build tasks for C++ compilers. Choose g++.exe build active file, which will build the file that is currently displayed (active) in the editor.



  • 3.launch.json

launch.json 是用於執行 ( run ) 和除錯 ( debug )的配置檔案,可以指定語言環境,指定除錯型別等等內容。


  • 輸入快捷鍵 Ctrl +Shift + D (or F5), 點選 Create a launch.json file ,

  1. From the main menu, choose Run > Add Configuration... and then choose C++ (GDB/LLDB).
  2. You'll then see a dropdown for various predefined debugging configurations. Choose g++.exe build and debug active file.

即可產生 launch.json


  • 4. settings.json
STEP 1 windows的使用者,點選左下角齒輪中的Settings後,可以打開使用者設定。


vs Code 設置提供兩個不同的範圍


1.用戶設置:    全局應用於您打開的任何 VS Code 實例的設置。 

 點選User,右上角第三個圖案(Open settings(json)),即可打開設定頁面


2.工作區設置:    存儲在工作區中的設置,僅在工作區打開時應用。

 點選Workspace,右上角第三個圖案(Open settings(json)),即可打開設定頁面 ,並在
.vscode 資料夾中產生  settings.json


STEP 2

點選User 中 Extensions -> c/c++

修改 C_Cpp: Clang_format_path  

設定 C:\msys64\mingw64\bin\clang-format.exe

          修改  C_Cpp.clang_format_fallbackStyle ,原始值是Visual Studio

"C_Cpp.clang_format_fallbackStyle": "{BasedOnStyle: Google, IndentWidth: 4, ColumnLimit: 0}" 
可用這行代替




C_Cpp: Clang_format_style 決定格式化形式,若爲file,則調用在workspace中的.clang-format


C_Cpp: Clang_format_fallback Style ,若上圖變量爲file,但無.clang-format文件則按照此處規則。


Step3 .clang-format 
取代修改  C_Cpp.clang_format_fallbackStyle , 自訂義排版格式

powershell中輸入

clang-format -style=Google -dump-config > .clang-format

or

clang-format -style=Visual Studio -dump-config > .clang-format

在工作目錄產生 .clang-format 檔案 , 但是編碼UTF-16 LE不適用 windows 10
需另存Encoding 格式 utf-8。

查看版本 clang --version


如何設定.clang-format 可以參考  Clang 12 官方文件

文件中有詳細說明跟範例

 

 AlignConsecutiveAssignments: AcrossEmptyLinesAndComments









C_Cpp: Clang_format_path 設定差別

設定1    C:\msys64\mingw64\bin\clang-format.exe

錯誤提示


設定2    C:\msys64\mingw64\bin\clang.exe

錯誤提示




Google C++ Style Guide 繁體中文版


VSCode开发C、C++环境搭建系列(一)——基于Mingw-w64搭建

Day 28: 使用 VS Code 來開發 C++

visual studio_CppProperties.json 結構描述參考

Getting Started with Clang and Visual Studio Code


0 意見:

張貼留言

標籤

總網頁瀏覽量

Translate

Popular Posts

Blog Archive