emacs常用配置 gcc -o 輸出檔案指定

來源:互聯網
上載者:User

《emacs常用配置整理及使用》第6條的配置了使用gcc/g++編譯的快速鍵,如下:

(defun quick-compile ()"A quick compile funciton for C"(interactive)(compile (concat "gcc " (buffer-name (current-buffer)) " -g -pg")));;編譯c(global-set-key [(f5)] 'quick-compile);;快速鍵F5

其中未指定gcc/g++ -o的輸出參數,若想該參數和當前buffer開啟的檔案名稱保持一致,可設定如下:

(defun quick-compile ()"A quick compile funciton for C"(interactive)(compile (concat "gcc " (buffer-name (current-buffer)) " -g -pg -o " (file-name-sans-extension (buffer-name (current-buffer))) )));;編譯c(global-set-key [(f5)] 'quick-compile);;快速鍵F5

其中(file-name-sans-extension (buffer-name (current-buffer)))為擷取當前buffer的檔案名稱(去掉副檔名)

如所示:

相應的gdb調試的快捷設定也要修改,如下:

(defun quick-debug ()"A quick debug funciton for C++"(interactive)    ;;(gdb (concat "gdb --annotate=3" " a.out")));;調試(gdb (concat "gdb --annotate=3 " (file-name-sans-extension (buffer-name (current-buffer))) )));;調試 (global-set-key [(f6)] 'quick-debug);;快速鍵F6

注意:"gdb --annotate=3 "此處要多加一個空格,以便和後面的參數隔開。

然後開啟要調試的檔案,按F6快速鍵,gdb會自動載入當前buffer關聯的檔案,當然也可以在已有的gdb調試視窗中使用如下命令,來載入要調試的檔案:

 (gdb) file 6.1

顯示效果如下:

備忘:

如果使用《emacs常用配置整理及使用》所提供的.emacs設定檔,需要做一些修改,注釋掉以下配置,否則會導致gdb多視窗調試失敗。

;;shell,gdb退出後,自動關閉該buffer;;(add-hook 'shell-mode-hook 'mode-hook-func);;(add-hook 'gdb-mode-hook 'mode-hook-func)(defun mode-hook-func  ()  (set-process-sentinel (get-buffer-process (current-buffer))         #'kill-buffer-on-exit))(defun kill-buffer-on-exit (process state)  (message "%s" state)  (if (or       (string-match "exited abnormally with code.*" state)       (string-match "finished" state))      (kill-buffer (current-buffer)))) 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.