質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Emacs

GNU Emacsと拡張性の高い、高性能なテキストエディタです。豊富なライブラリの導入により、統合開発環境やWebブラウザとしても機能させる事が可能です。

Q&A

解決済

2回答

6384閲覧

emacsの使い方について質問です。

ako999

総合スコア100

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Emacs

GNU Emacsと拡張性の高い、高性能なテキストエディタです。豊富なライブラリの導入により、統合開発環境やWebブラウザとしても機能させる事が可能です。

1グッド

0クリップ

投稿2015/09/15 00:47

編集2015/09/15 02:20

今までHTML、JavaScript、CSSを使ったホームページの作成をemacsで行ってきました。

このemacsでC言語なども実行したいと思ったのですが、

コンパイルの方法や実行結果の表示方法など分かりません。

インターネットで調べてはいるのですが、説明が難しかったり、

仕様が多少違うのか、書いている通りに実行できません。(←調べ方の問題もあると思います...)

分かる方がいましたら、ぜひ教えてください。

また、emacsでは難しい場合は他のエディタでコンパイルなど簡単に実行できるものを教えてください。

使っているには、
emacs-24.2-20121208
emacs-24.5-shared-libgcc-nodebug
です。下側のファイルのbin内のemacsを使っています。
(↑何を書けば使っているemacsのバージョン?が伝わるかの分からかったので、変な書き方だったらスミマセン。この書き方では判断できない場合は訂正しますので連絡お願いします。)

環境はWindowsです。

tf2014👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

EmacsでC言語の勉強は楽しいですよ!
是非チャレンジしてみてください。

質問者様の前提条件(理解)について不明なので、そもそもの部分について情報を記載させていただきます。

・コマンドプロンプトでの「C言語ソースコード作成→リンク/コンパイル」の流れを理解できている
・gdb等のデバッガがインストールされている
・GCC等のC言語コンパイラ及びリンカがインストールされている
・質問者様が、コマンドプロンプトでC言語のソースコードからexeファイルを作成できる
・EmacsそのものにC言語開発のための機能が実装されているわけではない事を理解できている
・特定のプログラミング言語に特化した編集機能(補完、タグジャンプ、Grep、置換え、色付け...etc)はEmacsの設定ファイルに設定しなければ実現できない

という前提条件が必須かなと思います。
Emacsは高機能なので「パソコンにインストールされているコンパイラやリンカ、デバッガをEmacs上で実行できる」という話です。
Emacsは高機能なエディタではありますが、Emacs自身がC言語のソースコードをコンパイルできるわけではありません。

では、EmacsにどうやってC言語のコンパイラやリンカ、デバッガを紐つける(設定する)のか?というところなのですが、Emacsは「Emacs Lisp」と呼ばれるプログラミング言語で設定しなければなりません。
「init.el「や「.emacs.el」といった設定ファイルに、C言語をデバッグ、コンパイルするための設定を記載する必要があります。
しかしながら、EmacsでC言語開発というニーズは先人たちにも当然ながらあった事ですので、標準で設定が準備されています。
※恐らくですがミニバッファでM-x gdb を実行すると「gdbがインストールされてないよ!!」と怒られたりするはずです。(gdbはデバッガアプリです)
※ちなみにコンパイルコマンドは「M-x compile」です。(makeがインストールされてないよ!!)と怒られると思います。

ですので、実現するための参考手順を記載いたします。
申し訳ありませんが、手順の詳細についてはGoogle検索などで補って下さい。

1.コマンドプロンプトでC言語ソースからexeファイルを作成する環境を構築
http://d.hatena.ne.jp/Kojo_Sugita/20080503/1209746003
※環境変数「PATH」に、C:\MinGW\bin;C:\MinGW\msys\1.0\bin を追加するのをお忘れなく。

2.Emacsから、手順1でインストールしたコンパイラ、リンカ、デバッガを実行してみる。
★Emacsを起動
MingwをインストールしてからEmacsを起動すること。
※gcc及びGDBがインストールされていると、Emacs起動時に自動的に環境変数から読み取ってくれる。

★hello.cを任意のフォルダに作成

#include <stdio.h>

void main() {
printf("hello world!!\n");
}
※上記のお決まりのコードを、Emacsで書いて保存する

★「M-x compile」をミニバッファで実行
hello.cが書けたら、hello.cの編集バッファで「M-x compile」コマンド実行。
「M-x compile」を実行すると、ミニバッファに「make -k」と表示されるので、make -kをBackSpaceキー連打で削除。
削除できたら「gcc hello.c -o hello.exe」と入力しEnterキーを叩く

-- mode: compilation; default-directory: "d:/kintaka/project/c_lang/00/" --
Compilation started at Wed Sep 16 12:01:19

gcc hello.c -o hello.exe

Compilation finished at Wed Sep 16 12:01:19

このように表示されるはず。

★デバッガでステップ実行などやってみたい場合は「M-x gdb」をミニバッファで実行
hello.cの編集バッファで「M-x gdb」を実行。
すると、ミニバッファに「gdb -i=mi a.exe」と入力された状態で表示されるので、「gdb -i=mi hello.exe」に修正しEnterキーを叩く

This GDB was configured as "mingw32".
For bug reporting instructions, please see:
http://www.gnu.org/software/gdb/bugs/...
Reading symbols from d:\kintaka\project\c_lang\00\hello.exe...(no debugging symbols found)...done.
(gdb)

このようにデバッガのプロンプトが表示されれば成功。
使い方の参考はコチラ → http://write-remember.com/linux/emacs-gdb/

※コンパイラとデバッガがインストールされていれば、標準のEmacs設定で自動的に使えるようになっているはず・・・。
※うまく動かない場合は「Emacs C言語開発」「M-x compile」「M-x gdb」等のキーワードでGoogle検索してみてください。

以上、長文になり申し訳ないです。
楽しんで下さい!!

投稿2015/09/16 03:13

kamuycikap

総合スコア135

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

環境(Mac, Windows, Linux)や今まで使われてきたEmacsのWindow有無にもよってくるかと思います。
Emacsの拡張機能としてC言語用の
・入力補完
・文法チェック
・コンパイル、実行
・コード整形
・デバッグ
など様々なパッケージが出ていますのでそれらを利用すると楽だと思います。
パッケージもEmacsバージョン24.2からはダウンロード&インストールも楽になっているので色々触ってみるのも良いと思います。

Window版ではなく、コンソールモードでも不自由は感じていません。軽いですし。
コンソールだけの利用例

投稿2015/09/15 01:31

CharmSystems

総合スコア241

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問