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

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

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

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

コンパイル

コンパイルとは、プログラミング言語のテキストソース(ソースコード)をコンピュータ上で実行可能な形式(オブジェクトコード)に変換することをいいます

Q&A

解決済

8回答

2326閲覧

C言語のオートコンパイルについて

Be-net

総合スコア17

C

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

コンパイル

コンパイルとは、プログラミング言語のテキストソース(ソースコード)をコンピュータ上で実行可能な形式(オブジェクトコード)に変換することをいいます

0グッド

0クリップ

投稿2019/05/20 07:15

編集2019/05/21 01:18

C言語をいちいちcc ファイル名としてコンパイルしてから実行するのが面倒で仕方ありません
エディタはAtomを使用しているのですが、Atomの拡張機能に限らず保存時に自動でコンパイルしてくれるオススメの物みたいなのってありませんか??

追記
無知で申し訳ございません
Sassからcssへのオートコンパイルなどをイメージしていました
C言語のコンパイルはPCごとに環境依存みたいなのがあるのでしょうか?
皆さんの仰っている事は全ては理解していませんがCのコンパイルが面倒だという事だけは理解しました

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

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

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

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

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

maisumakun

2019/05/20 07:24

「C言語」である必要性はなにかありますでしょうか。
cateye

2019/05/20 08:22

>保存時に自動でコンパイル・・・エラーが出たらどうします?
jimbe

2019/05/20 11:56

Atom を使っていませんので拡張機能というので出来るのか知らないのですが, c でその「保存時に自動でコンパイル」する拡張機能を作ればよろしいのではないでしょうか. 「これが完成すれば楽になる!」と思えば, モチベーションも上がりやすいのではないかと思います. コンパイルエラー対策は後々ということで...
Be-net

2019/05/21 01:19

C言語は課題です 拡張機能を自分で作る、魅力的な提案ですが課題に対する費用対効果が低いので今回は見送らせて頂きます(_ _)
guest

回答8

0

ひょっとしたら history を知らんのかな?
Linux なら !cc とか打てば直近の "cc なんたらかんたら..." を再度実行してくれますが。

投稿2019/05/20 19:34

episteme

総合スコア16614

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

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

0

多分、質問者の要望は、質問に書かれている内容と乖離があります。
X「コンパイルと実行をセットにしたい」
O「プログラムソース保存とコンパイルをセットにしたい」

まあ、どちらの場合でもIDEを使うのが一般的でしょう。

投稿2019/05/20 15:01

HogeAnimalLover

総合スコア4830

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

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

0

ベストアンサー

Visula StudioのIDEとかでソリューションをビルドする時にF7キー一つで
ファイルも自動的に保存された上でコンパイルから実行までやってくれますが
それじゃ駄目なんです?

ファイルを保存したら自動でコンパイルではなく、
IDEからコンパイルを実行した時にファイルも一緒に保存されるですね。

ATOMは使っていないのでわかりませんがVSCodeでも、

tasks.jsonのlabelを仮にデバッグ(名前は何でも良い)にとして、
launch.jsonのpreLaunchTaskにも同じくデバッグを設定
後はF5キーを押せばデバッグの開始と同時にファイルの保存とコンパイルも自動で行えるようになりますね。

jsonc

1// tasks.json (コンパイル等の各種コマンドを定義する設定ファイル) 2{ 3 "version": "2.0.0", 4 "tasks": [ 5 { 6 "label": "デバッグ", // ← この名前をlaunch.jsonのpreLaunchTaskに設定する 7 "type": "process", 8 "command": "g++", 9 "args": [ 10 省略... 11 ], 12 "group": { 13 "kind": "build", 14 "isDefault": true 15 }, 16 }, 17 ] 18} 19

jsonc

1// launch.jsonの例 (デバッガの設定を行うファイル) 2{ 3 "version": "0.2.0", 4 "configurations": [ 5 { 6 "type": "gdb", 7 "request": "launch", 8 "name": "Launch Program", 9 "target": "main.exe", 10 "cwd": "${workspaceFolder}", 11 "valuesFormatting": "parseText", 12 "preLaunchTask": "デバッグ" // launch.jsonを作成したらこの設定値を追加する 13 } 14 ] 15} 16

ただ、VSCodeでC/C++を扱う場合はこれらのファイルを使う標準的なやり方より、
CMake + Ninja Buildを導入した上で
CMakeLists.txtから直接コンパイルおよびデバッグができる(tasks.jsonとlaunch.jsonの設定も省ける)
CMake Tools Helper拡張機能をインストールして使うのが良いかと思います。

投稿2019/05/20 13:27

編集2019/05/20 13:49
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

Be-net

2019/05/21 01:20

仰っている事は全て把握しておりませんが頑張って調べて消化していこうと思います、ありがとうございます!
guest

0

面倒で仕方ありません

通常、ソースファイルは1つでは有りません。(多い時は2〜300以上あります)・・・そしてライブラリも多岐にわたります。なので makeやcmakeを使います。それを面倒と言われてもねぇ^^;
個人で作って、もすぐに10個ぐらいのソースになります。
コンパイルが面倒と言っているあなたは、デバッグなんかしないのでしょうか?

投稿2019/05/20 08:54

cateye

総合スコア6851

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

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

0

手打ちでccしているくらいなので業務用途ではないと推測します。
業務ならmakefileなりIDEでビルドなりしますので。
単なる学習用途であるなら、paizaなどのオンライン実行環境を使うのはいかがでしょうか。
https://paiza.io/ja

投稿2019/05/20 07:36

ttyp03

総合スコア16998

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

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

Be-net

2019/05/21 01:22

ProgateのC版実行環境ですね!情報提供ありがとうございます、有効活用させていただきます(_ _)
guest

0

コンパイラ言語ですから、それは仕方がないと割り切るほうがいいかと。
#ソースが複数あるときはどーすんだという話に。

実行さえできればそんでいいという向きには、「Cインタプリタ」でぐぐってみるとしあわせになれるかもしれません。

投稿2019/05/20 07:23

y_waiwai

総合スコア87749

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

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

0

watchdog などのツールを使ってファイル変更時にシェルスクリプトを自動実行するとか?
https://pypi.org/project/watchdog/

watchmedo shell-command コマンドにそのような機能があります。

投稿2019/05/20 07:55

mather

総合スコア6753

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

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

0

どうしてもMinGWとかそういう、コマンドラインからのものなら、

候補1: バッチファイルで処理 これは、コマンドプロンプトでコンパイルすることから。 Windows以外のOSではシェルスクリプトですが。
候補2: makefileを使う これが一般的。

ですね。

一般的にはmakefileを使います。

コンパイラとかによるので確実じゃないと思いますが、

make -f makefile

と打てばコンパイルしてくれる。

そして、make -f... すら面倒なら、

  1. makefileを書いておく
  2. バッチファイルからmakefileを使う
  3. バッチファイルのほうを動かす

で、初めてと、ライブラリ追加時のようなmakefileに編集が必要な時以外はバッチファイルをダブルクリックすればいい。もちろん、コマンドプロンプトからでも呼べる。

また、質問するときで、質問内容がコンパイラ依存のものや、OS依存のものはコンパイラの情報(バージョンも含めて)やOS名も書きましょう。

あとから「俺はWindowsとか知らないし?」って言われても...ね。

細かいことは「makefile 書き方」とか「makefile 使い方」とかそういう風に調べてください。

投稿2019/05/20 07:39

BeatStar

総合スコア4958

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問