VC++しか使ったことない&CもC++もそんなに書けない&Windowsくらいしか触れませんよheheheというアレ具合なので想像してたより苦労した。
Cygwinのインストール
Cygwinからsetup.exeをダウンロード。c:\cygwin以下などにインストール。入れたのは
とその周辺。
インストールしたら環境変数のpathへC:\cygwin\binを追加。.emacsに以下の記述を追加。
;; cygwin (setq explicit-shell-file-name "bash.exe") (setq shell-file-name "sh.exe") (setq shell-command-switch "-c") (modify-coding-system-alist 'process ".*sh\\.exe" '(undecided-dos . euc-japan)) ;; argument-editing の設定 (require 'mw32script) (mw32script-init) (setq exec-suffix-list '(".exe" ".sh" ".pl")) (setq shell-file-name-chars "~/A-Za-z0-9_^$!#%&{}@`'.:()-")
コンパイル
拡張子が.c, .h, .y, .lexのものをMeadowで開くとCモード、.C, .H, .cc, .hh, .cpp, .cxx, .hxx, .c++, .h++のものだとC++モードに移行する。どっちもcc-modeらしい。
たとえばこんなのを書いて
#include <iostream> using namespace std; int main(){ cout << "こんにちは!!\n"; return 0; }
test.cppとかいう名前だったとする。
これを編集中にM-x compileすると、ミニバッファに
Compile command: make -k
と出る。MakefileがあればEnter叩くだけでコンパイルが始まる。あるいは、
Compile command: g++ -g -o test test.cpp
などとしてコンパイルしてもいい。-gオプションつけておけばgdb使ってデバッグできる。いちいちM-x compileするのが面倒だったら次の記述を.emacsに足しておくとC-c cでコンパイルできるようになる。
;; compileを楽に (defun my-c-common-mode () (define-key c-mode-base-map "\C-cc" 'compile) (define-key c-mode-base-map "\C-ce" 'next-error) (c-toggle-hungry-state 1)) (add-hook 'c-mode-common-hook 'my-c-common-mode)
参考
実行
(ここでつまづいてたとか恥ずかしくて言えない…)
Makefileでrunとかすると実行させられるような気がするけどよく分からない。何せ今ちょっとググった程度の知識なので…
Meadow上からだと、まずM-!してシェルを呼び出す。
Shell command:
例えばさっきコンパイルしたやつを実行したいとき、コマンドプロンプトのノリでそのまま
Shell command: test.exe
などとしてもダメ。shとかbashとかにはカレントディレクトリを"./"で教えないといけない。なので次のようにするのが正解。ミニバッファに実行結果が出力される。
Shell command: ./test.exe
もちろん拡張子は省略可。ウソつきました。拡張子要ります。