MacOS 使用 <bits/extc++.h> 標頭檔 (以 VSCode 為例)
前言
先說結論,如果用 Clang 作為編譯器是難以使用 <bits/extc++.h>
標頭檔的,會產生各種神奇報錯,本文採取適用 Homebrew 安裝 GCC 的方式,並且使用 GCC 作為編譯器。
本來在寫 CSES 想要用看看 pbds,啊結果發現完全沒辦法用,網路上到處找好像都沒什麼解決方法,研究一番之後就有了這篇文章。
安裝 Homebrew (如果沒有的話)
1 | /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" |
安裝 GCC
這邊可以選擇安裝不同版本的 GCC,但要注意 Arm 架構(M 系列晶片)的 Mac 只有支援 GCC 11 以上的版本。
1 | # 安裝最新版本的GCC |
使用 GCC 編譯器
如果不知道安裝的 GCC 版本,可以使用以下指令查看:
1 | ls /usr/local/bin/gcc* # Intel Mac |
確定了 GCC 的確切版本號(例如 gcc-11),可以使用該版本號的 GCC 編譯您的程式碼。 例如,如果 GCC 版本是 11,則執行:
1 | g++-11 example.cpp -o Example |
在 VSCode 中使用 GCC
使用 C/C++ Compile Run 插件
進入到插件設定頁面,搜尋 C-cpp-compile-run: Cpp-compiler
,設定使用 gcc 編譯。
使用 Competitive Programming Helper (cph) 插件
進入到插件設定頁面,搜尋 cph.language.cpp.Command
,設定使用 gcc 編譯。
結語
這樣就可以在 MacOS 上使用 <bits/extc++.h>
標頭檔了,可以試試底下這個程式碼能否正常運行:
1 |
|
如果對在 MacOS 上使用 GCC 和 <bits/extc++.h> 標頭檔有任何問題,歡迎在下方留言討論。