mac進行acm(C/C++)編程


在windows下我們往往使用CB(CodeBlocksks)進行acm的編程,不用建立工程,可以直接編譯並運行,然后彈出黑框框,sublime也是這樣,只要MinGW搞好就行

在ubuntu下我也常常使用CB,雖然有時候會出現小問題,但是還是非常穩定的

在mac os下就比較頭疼,CB是遠古版本了,而且在OSX下可能閃退,但是我們總不可能使用Xcode進行C/C++代碼編寫吧,比較麻煩

先后配置了sublime和VSCode,最終還是選擇了VSCode,比較簡單好用

去微軟官網下載之后拖到應用程序打開,然后下載C/C++的MS插件,然后下載codeRun(因為task的體驗不好,不能編譯並運行)

編譯和運行其實就是一行命令行的事("g++ A.cpp -std=c++11 -o A && ./A),我們配置codeRun到這樣,然后加入一些人性化操作

這個就是setting.json,可以點擊查看->命令面板->找到設置

 

    // 在終端中運行編譯命令,否則我們無法與程序通過標准輸入交互
    "code-runner.runInTerminal": true,
    // 運行代碼之前清除之前的輸出
    "code-runner.clearPreviousOutput": true,
    // 開啟這個后在運行編譯命令之前會自動 cd 至文件所在目錄
    "code-runner.fileDirectoryAsCwd": true,
    // 這里只保留了 C 和 C++ 的編譯命令,有需要其他語言的請自行添加
    "code-runner.executorMap": {
        "c": "gcc $fileName -o $fileNameWithoutExt && ./$fileNameWithoutExt",
        "cpp": "g++ $fileName -std=c++11 -o $fileNameWithoutExt && ./$fileNameWithoutExt",
    },
    // 運行代碼后切換焦點至終端,方便直接輸入測試數據
    "code-runner.preserveFocus": false,
    // 在運行代碼之前保存文件
    "code-runner.saveFileBeforeRun": true,

但是你會發現你可能沒有一個正常的GCC編譯器,如果有Xcode,那么將是clang,他不支持萬能頭文件,而且標准不太一樣

這時候可以通過Homebrew安裝GCC

如果沒有安裝Homebrew可以在終端執行這個指令,關於這個東西的介紹和使用可以到這里 https://brew.sh/index_zh-cn.html

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安裝gcc也很簡單

brew install gcc

安裝好了只要改一下~/bash_profile就好了,加入如下幾行,因為我是安裝的9,至於你是多少請隨機應變

export PATH="/usr/local/Cellar/gcc/9.1.0/bin:$PATH"
alias gcc='gcc-9'
alias g++='g++-9'
alias c++='c++-9'

可以刷新下系統文件

1 source ~/.bash_profile

輸入g++-9 -v(其實這個時候和g++ -v等效的)顯示這一坨就說明你好了,你在命令行編譯cpp文件就可以使用萬能頭文件了

sing built-in specs.
COLLECT_GCC=g++-9
COLLECT_LTO_WRAPPER=/usr/local/Cellar/gcc/9.1.0/libexec/gcc/x86_64-apple-darwin18/9.1.0/lto-wrapper
Target: x86_64-apple-darwin18
Configured with: ../configure --build=x86_64-apple-darwin18 --prefix=/usr/local/Cellar/gcc/9.1.0 --libdir=/usr/local/Cellar/gcc/9.1.0/lib/gcc/9 --disable-nls --enable-checking=release --enable-languages=c,c++,objc,obj-c++,fortran --program-suffix=-9 --with-gmp=/usr/local/opt/gmp --with-mpfr=/usr/local/opt/mpfr --with-mpc=/usr/local/opt/libmpc --with-isl=/usr/local/opt/isl --with-system-zlib --with-pkgversion='Homebrew GCC 9.1.0' --with-bugurl=https://github.com/Homebrew/homebrew-core/issues --disable-multilib --with-native-system-header-dir=/usr/include --with-sysroot=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
Thread model: posix
gcc version 9.1.0 (Homebrew GCC 9.1.0) 

然后VSC右鍵或者快捷鍵直接運行,就可以get到酸爽了

 使用gdb進行調試

方便的進行ifdef

cd /usr/local/Cellar/gcc/9.2.0_3/include/c++/9.2.0/x86_64-apple-darwin19/bits

然后修改stdc++.h
加上

#define bob
#define LOG(FMT...) fprintf(stderr, FMT)

然后我本機就可以開頭

    #ifdef bob
    freopen("test.in","r",stdin);
    freopen("test.out","w",stdout);
    int nol_cl = clock();
    #endif

結尾

    #ifdef bob
    LOG("Time: %dms\n", int((clock() - nol_cl) / (double)CLOCKS_PER_SEC * 1000));
    #endif

快捷鍵

通用

⇧⌘P, F1 顯示控制台

⌘P 快速打開,快速查找並進入文件

⇧⌘N 新建窗口(不是文件)

⌘W 關閉窗口

基本編輯

⌘X 刪除整行 (不需要選中)

⌘C 復制整行 (不需要選中)

⌥↓ / ⌥↑ 上下移動整行

⇧⌥↓ / ⇧⌥↑ 復制整行,並粘貼到此行的上面/下面

⇧⌘K 刪除行

⌘Enter / ⇧⌘Enter 插入行

⇧⌘\ 光標跳到對應的括號

⌘] / ⌘[ 縮進

Home / End 跳到行首行尾

⌘↑ / ⌘↓ 跳到首行或尾行

⇧⌘[ / ⇧⌘] 折疊和展開區域(驗證了一下,這個組合鍵是左右切換文件)

⌘K ⌘[ / ⌘K ⌘] 折疊或展開選中的區域

⌘K ⌘0 / ⌘K ⌘J 折疊或展開所有的區域

⌘K ⌘C 加注釋

⌘K ⌘U 刪除注釋

⌘/ 刪除或注釋

⇧⌥A 給選中的代碼添加或刪除注釋(/* */)

⌥Z 切換自動換行

搜索和替換

⌘F 查找

⌥⌘F 替換

⌘G / ⇧⌘G 查找下一個或上一個

⌥Enter 選擇所有的查找結果(不懂)

⌘D Add selection to next Find match

⌘K ⌘D Move last selection to next Find match

導航欄

⌘T 展示所有符號(顯示本文件中的所有函數)

⌃G 去到指定行

⌘P 快速打開文件

⇧⌘O 跳到某個函數

⇧⌘M 顯示報錯面板

F8 / ⇧F8 跳到下一個/前一個錯誤或警告

⌃⇧Tab 導航所有打開的文件

⌃- / ⌃⇧- 最近查看的文件之間跳轉

⌃⇧M 切換選項卡移動焦點(不懂)

編輯器管理

⌘W 關閉編輯器

⌘K F 關閉文件夾

⌘\ 拆分編輯器

⌘1 / ⌘2 / ⌘3 切換到第1,2,3個編輯器

⌘K ⌘← / ⌘K ⌘→ 切換編輯器組

⌘K ⇧⌘← / ⌘K ⇧⌘→ 編輯器左移右移

⌘K ← / ⌘K → 移動當前編輯器組

文件管理

⌘N 新建文件

⌘O 打開文件

⌘S 保存

⇧⌘S 另存為

⌥⌘S 保存所有文件

⌘W 關閉

⌘K ⌘W 關閉所有文件

⇧⌘T 重新打開關閉掉的文件

⌘K Enter 保持打開

⌃Tab / ⌃⇧Tab 打開下一個或前一個文件

⌘K P 復制當前文件的路徑(不好使啊)

⌘K R 在瀏覽器中顯示當前文件

⌘K O 在新窗口中顯示當前文件

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM