WindowsにAtomでお手軽にC言語環境を作る方法

atom_win_00009
Atom+C言語ではなく、コンパイラ(gcc)だけをインストールしてコマンドプロンプト(Windowsの場合) or ターミナル(Macの場合)を使うというシンプルなパターンもあります。
[Win/Mac][超初心者向け]C言語の開発環境の初歩の初歩、シンプルな開発環境を作って使う

 




WindowsでC言語の環境を手軽に作るには?

WindowsでC言語の環境を手軽に作るには?

と思い、調べていました。
C言語を教えるにあたり、簡単にC言語のプログラミング環境を作れる方法が必要なのです。
なので無料がいいのです。

Visual Studio は重たいのであまりオススメしたくない。
Eclipse でもいいんだけど、ボタンが沢山あると、初めてプログラミングする方はちょっととまどうかも知れないなぁと。

できればエディタだけでコンパイルや実行ができればいいなぁと考えていました。
Emacs でならそういった環境を作る方法を知ってるし自分も使ってるけど、さすがに Emacs をオススメするのは気が引けますよね(笑)

で、どうも最近流行りで評判のいい Atom でC言語の環境が作れそうだと分かりました。
Sublime Text でもできるようですけど、最初は無料である Atom の方が良いでしょう。

Atom はWindowsでもMacでも使えますし、どっちでもC言語の環境を作れます。

ですが・・・・

Macの場合は Atom だけで実行できるのに対し、Windowsの場合はできません。
ですので、Windowsの場合はコマンドライン(DOSプロンプトとも言ったりします)を使います。
エディタである Atom だけで完結しないのがちょっと残念と言えば残念ではありますが、まぁ、コンパイルを自分でやるので勉強になるというメリットとも言えますかね。

Mac/WindowsでAtomを使ってC言語の環境を作るのに必要なもののまとめ

本記事はWindowsのみを対象にしていますが、比較のためにMacの場合の必要なものを書いておきます。
※まぁ、Windowsの場合とあまり変わらないんですけど。

◆Windowsの場合

必要なもの

Atom 本体
Atomパッケージ
  ・linter
  ・linter-gcc(linter-clangでもOK)
     linter-gccはlinterが必要です。
     どちらも必須では無いです。
     入れておくとプログラムの間違いを指摘してくれます。
  ・atom-terminal
     Atom からコマンドプロンプトをすぐに立ち上げられるだけ
     必須ではないです。
MinGW
   これがコンパイラです
コマンドプロンプト
   Windowsに最初から入っています
   スタートメニュー -> プログラムとファイルの検索 -> cmd.exe

使い方(概要)

1.Atom でC言語のプログラムコードを書く
2.コマンドプロンプト起動する
3.コマンドプロンプト上でコマンド打ってMinGWがコンパイルする
4.実行ファイル(*.exe)が生成される
5.コマンドプロンプトで実行ファイルを実行する

◆Macの場合

必要なもの

Atom 本体
Atomパッケージ
  ・script     ←Windowsとは違うところ
  ・linter
  ・linter-gcc(linter-clangでもOK)
     linter-gccはlinterが必要です。
     どちらも必須では無いです。
     入れておくとプログラムの間違いを指摘してくれます。
・atom-terminal    ←Windowsとは違うところ
     Atom からコマンドプロンプトをすぐに立ち上げられるだけ
     必須ではないです。
gcc    ←Windowsとは違うところ
   これがコンパイラです
   Xcodeインストールしたら同時に入るはず
   ※もしかしたらコマンドラインツールズとかが必要かも?
・コマンドプロンプト    ←Windowsとは違うところ
   Windowsに最初から入っています
   スタートメニュー -> プログラムとファイルの検索 -> cmd.exe

使い方(概要)

1.Atom でC言語のプログラムコードを書く
2.Atom 上でパッケージのscriptを使ってRun Scriptする

◆Windowsの場合とMacの場合の違い

Atom のWindows版のscriptパッケージがC言語に対応していないんですよ。(※scriptパッケージはMacのxcrunコマンドを使ってるから)
一言で言ってしまえばただそれだけの違いなんです。

scriptパッケージのサイト見たら、こんな事書いていました。

C, C++, Objective-C, and Objective-C++ are currently only available for Mac OS X (where process.platform is ‘darwin’). This is possible due to the commands xcrun clang and xcrun clang++. NOTE: Xcode and the Xcode command line tools are required to ensure xcrun and the correct compilers on your system.

訳:C言語とかはMac OS Xでのみ対応してまっせぇ~。

なので、Macでやる方がお手軽です。

昔はプログラミングしたけりゃWindows(or MS-DOS)だったんですけど、最近はMacの方がラクチンな事が多い。
WindowsもMac OS XみたいにUNIX系OSをベースにして新たに生まれ変わった方がいいんでは?
・・・それならハナからUNIX系OSを使えばいいってことか(笑)


広告


広告


 

 

手順1:Atomのインストール

※ちなみに Atom とはエディタです。
※メモ帳の超高機能版と思ってもらったらいいです。

さて、ここから導入手順になります。

まずは Atom をインストールしましょう。
インストールは難しくは無いです。

上記の公式サイトからインストーラー(AtomSetup.exe)をダウンロードしましょう。

ダウンロードしたらダブルクリックして起動。
ダイアログとかは出ません。スプラッシュ画面が出るだけです。

atom_win_00001

インストールが終了すれば Atom が起動します。

atom_win_00007

これだけでインストール終了です。
なんてラクチンなインストールなんだ!!!

手順2:Atomパッケージのインストール

フォントの設定や、テーマ(見た目の色)の設定とかありますが、それらの設定方法やパッケージについては検索すれば沢山出てきますのでそちらをご覧ください。

本記事は Atom でC言語環境を作るのが趣旨ですので、必要な手順のみ説明致します。

1.メニューの File -> Settings を選択(日本語表記なら ファイル -> 環境設定)
2.Settings画面が出てきます。
3.左のメニューに「+Install」があると思いますので、それをクリック
4.必要なPackageを検索してインストールします。(Installボタンクリックするだけ)
   linter
   linter-gcc
   atom-terminal

手順3:MinGwのインストール

Atom パッケージをインストールしたらlinter-gccの設定をしたいところですが、その前にMinGWのインストールが必要です。

Atom は単なるエディタですので、ソースコードを書くことしかできません。
Atom とは別にC言語のソースコードをコンパイル(*1)してくれる コンパイラ と呼ばれるソフトが必要です。
*1:大雑把に言うと、実行ファイル(Windowsで言えばexeファイル)を作ることだと思ってください。

WindowsにおいてC言語コンパイラは幾つかありますが、今回はMinGWを使います。
MinGWのインストールについては、以下の記事の「MinGW」の項目をご覧ください。

lint(リント)はC言語プログラムの静的解析を行うUNIXのコマンドです。
linter(リンター)ってのはlintの流れから来ていると思います。
静的解析ツールは色々ありますが、「lint」という文字が入っている事が多いですね。
splint(スプリントと呼ぶのかな?)っていう名前のものもあります。
静的解析(せいてきかいせき)ツールとは、プログラムコードに不具合になりそうな処理や書き方が無いかをチェックしてくれるものです。
実行しなくてもプログラムコードの間違いが発見してくれるので非常に便利です。
もちろん動かさないと分からない不具合は静的解析では発見されません。
静的解析を事前にかけておくと、しょうもない不具合を防ぐ事ができるので、プロの現場では必ず静的解析をかけます。(私の場合は組み込み系開発です)
静的解析ツールは無料のものから非常に高価なものまで幅広くあります。
もちろんC言語用だけではなくHTML用とか様々な種類があります。

手順4:linter-gccの設定

linter-gcc が静的解析をするためにコンパイラが必要です。
コンパイラはMingGWです。
MingGWは標準でインストールすると C:\MinGW にインストールされています。
この中にbinフォルダがあって、その中にgcc.exeがあります。
こいつがコンパイラです。

ファイル -> 環境設定 -> パッケージ -> lint-gcc -> GCC Executable Path

ここに C:\MinGW\bin\gcc.exe を設定します。

ここまで来れば設定はひとまず終了です。

手順5:linter-gccの使い方

使い方と言っても特にありません。
保存する時に静的解析されます。

  1. 拡張子がcのファイルを作る
  2. C言語のプログラムを書く
    例えば以下の様なもの
    ※warningが幾つか出ます。

  3. Ctrl+Sで保存する

保存したら、以下のようにerrorやwarningが出ています。

atom_win_00010

 ↓

atom_win_00011

errorは絶対に直さないとこの後のコンパイルができませんが(=実行ファイルが生成されない)、warningは直さなくてもコンパイルはできます。
しかし、warningも全て修正するようにしてください。
warning指摘はされているけども、どうしてもこの書き方じゃないとダメやねん!!と言う場合は修正しなくてもいいですが、warningが出るような書き方はあまりよろしくありません。
できれば違う書き方にした方が良いでしょう。

組み込み系や制御系開発の現場ではwarningは全て取ることが大原則です。
warningを修正しない場合は修正しない理由を書いて申請みたいな事をする場合があります。
※warningを修正せず、その部分で不具合を発生させようものなら・・・・どえりゃー怒られます(笑)

手順6:コンパイル

errorもwarningも取ってしまえば、次はコンパイルします。(実行ファイルを生成します)

コンパイルはコマンドプロンプトを使います。
コマンドプロンプトは Atom とは関係ないんですが、 Atom からワンタッチでコマンドプロンプトを起動できればラクでしょね。
コマンドプロンプトを単独で起動すると、cd(チェンジディレクトリ)しないといけないので、地味に面倒なんですよね。
Atom からコマンドプロンプトを起動するとそのファイルがあるディレクトリにcdした状態でコマンドプロンプトが使えます。

コマンドプロンプトが起動しましたら、以下のコマンドを打ってください。

※-o hogehoge.exe を付けないと、a.exeという名前で実行ファイルが生成されます。

コマンドプロンプト上でdirと打てばファイル一覧が見られます。
hogehgoe.exeがあればOKです。

手順7:実行

実行は簡単です。
コマンドプロンプト上で

と打てば実行されます。

関連記事

まとめ

特にまとめるような内容はありませんが、、、、(笑)

Windowsにおけるプログラム環境を準備するのって意外と面倒だったりします。
しかし、 Atom を使えばプログラム環境を簡単に準備できるんじゃないかと思います。
特に保存するだけで静的解析をやってくれるのはありがたい。
間違いや怪しい処理にすぐ気付けるのは開発効率をものすごく高めてくれます。

今回はWindows版のscriptという Atom パッケージがC言語に対応していないのでコマンドプロンプトを使いましたが、もしも将来的に対応するような事があればコマンドプロンプトも不要になりますので、更にプログラム環境の準備がラクになると思います。

Atom は人気のあるエディタですし、便利な機能も沢山あります。
プログラムを書く人にとってエディタは非常に重要なソフトですし、一番長い期間と時間付きあうものです。

統合開発環境でもいいんですけど、この機会に Atom を使う事をオススメします。
でも Atom はちょっと重いんだよなぁ・・・・

参考書籍

  


 

 

18 件のコメント

  • ‘gcc’ は、内部コマンドまたは外部コマンド、
    操作可能なプログラムまたはバッチ ファイルとして認識されていません。

    とコマンドプロンプトで指示されるのですが、原因がわかりません。
    可能なら教えて頂けないでしょうか?
    大まかな質問で申し訳ありません。よろしくお願いします。

    • こんにちは。コメントありがとうございます。

      おそらくPATHが通っていないのだと思います。
      「手順3:MinGwのインストール」でMinGWのインストール方法を書いた記事にリンクを張っていますがそちらはご覧頂けているでしょうか?

      WindowsでのC言語の開発環境(Eclipse)
      http://gabekore.org/windows-c-eclipse

      ↑の記事で「PATH」というワードを検索してください。
      そこにPATHの通し方を書いています。

      • 返信ありがとうございます。
        システム環境変数にあるPATHに教えて頂いた「;C:\MinGW\bin」を付け足したのですがコマンドプロンプトに認識されません。
        他に原因は考えられますか?

        何度も申し訳ありません。

        • gcc(MinGWのインストール)は完了されているんですよね?
          「C:\MinGW\bin」の中にgcc.exeはあるかどうか確認してください。

          環境変数に追加されたら、一度マシンを再起動してみてください。

  • 再起動が必要だったようです。
    お手数おかけしました。

    C言語の勉強頑張りたいと思います。

    • 環境変数を変更した場合はマシンを再起動しておく方が良いでしょう。

      動くようになって良かったですね。
      C言語の勉強頑張ってくださいね!

  • どこで何をすればいいのか全体的に分かりにくい記事でした。返信はいらないです。

  • パッケージのlinter(linter-gcc)をインストールしたのですが,エラーコードでも反応がありません。linter-gccのgccも設定済です。その他は問題なく利用できコンパイル,実行まで可能です。

    何が原因かを調査する方法を教えてもらえませんでしょうか?

    • linter-gccのページで、「Using CMake compile settings」の部分を読むと、

      1.Gitからgtf2tabを取る
      2.gtf2tabをビルドする
      3.cmakeコマンド打つ

      となっています。

      なので、これが必要なのかなと思います。

      ただ,Gitから取れるgtf2tabはおそらくMac/Linux用だと思います。
      Windowsの場合ですが、gtf2tabをGitからzipをダウンロードして、その中にあるREADME.mdに手順が書かれてあります。(47行目「### On Windows」の部分)

      WindowにCMakeというものをインストールしておく必要があります。

      CMakeは↓ココからダウンロードできます。
      https://cmake.org/download/

      まだ私もCMakeを入れてないので確認できていませんが、近いうちに確認してみます。

    • linterやlinter-gccのVerUPをしたら、出ません。
      過去のものに置き換えれば出るようになるんじゃないかなと思います。

      linter-gccのページを見ると、jsonファイルがどうのこうのと書かれています。
      https://atom.io/packages/linter-gcc

      もしかしたらjsonファイルが必要なのかも?
      ※調査中

    • 返信遅くなってすみません。
      ここ数日コメントチェック忘れていました。

      linter本体のパッケージはインストールされてますか?

  • ご連絡ありがとうございます。

    Atom 1.15.0 ia32
    linter 2.1.2
    linter-gcc 0.7.1
    をインストールした環境での状況になります。

    現状はAtomを使う場合にはコンパイル時にgccの掃き出す結果で対応をしています。
    VerUPすると出ないとのことですので,ご指摘の通り何かお作法が必要になるのでは?と思うのですが,そこまで知識もなく,よくわかりません。
    パッケージやVerに特にこだわりはないので,AtomでCの静的コード解析をする方法がもし,お分かりになりましたら教えていただけると助かります。

    • (個人的には腑に落ちない点がありますが)一応解決し、linter-gccが機能するようになりました。
      記事にしましたので、もしよろしければご覧ください。

      もし、これでもダメな場合、ご連絡頂けますとありがたいです。

      gabekore.org/atom-linter-gcc

      では。

  • コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    ABOUTこの記事をかいた人

    Windows/Mac/Linuxを使う現役システムエンジニア&プログラマ。オープン系・組み込み系・制御系・Webシステム系と幅広い案件に携わる。C言語やC#やJava等数多くのコンパイラ言語を経験したが、少し飽きてきたので、最近はRubyやPython、WordPressなどのWeb系を修得中。初心者向けのプログラミング教室も運営中。オンライン・対面・出張等でプログラミングをレッスンします。