🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C

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

Q&A

3回答

5600閲覧

Visual Studio Code でのC言語環境開発

Fsho

総合スコア6

C

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

0グッド

1クリップ

投稿2019/10/16 09:47

編集2019/10/21 16:48

前提・実現したいこと

大学でC言語を学んでいるものです。学校ではVisual Studio 2015というテキストエディタを使うことを推奨されているのですが、いろいろとごちゃごちゃしていて使いにくいと感じたのでVisual Studio Codeにのりかえ、C言語の環境開発をしたいと思っております。

主に下記のサイトを参考にしました。

リンク内容

このサイトにはかかれていませんでしたが、拡張機能であるC/C++というのをインストールしました。本当に必要なのかはわかりません。

発生している問題・エラーメッセージ

サイトと同じようにHello Worldのプログラムを実行しましましたが、下記の画像のようにエラーがでてしまいます。またプログラムの#include <stdio.h>のところにエラーの指摘がされており、「includePathを更新してください。この翻訳単位では波線が無効になっています。」とでるのですがまったく意味がわかりません。

イメージ説明

プログラミングを学び始めて日が浅いのでいろいろと知識は不足しているとは思いますが、解決方法を教えてほしいです。よろしくおねがいします。

追記

プログラムの#inculude <stdio.h>の波線は .vscodeにあるc_cpp_properties.jsonをかきかえて消すことができました。後はビルドなのですが、現在環境変数にC_INCLUDE_PATHを追加しc_cpp_properties.jsonの内容をかいてターミナルで実行したところ下記の画像のようになって実行することができない状態です。
イメージ説明

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

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

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

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

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

guest

回答3

0

いろいろとごちゃごちゃしていて使いにくいと感じたので

親戚のおばさんが初めて買ったスマホの使い方を聞きに来た時のことを思い出してしまいました。「画面がごちゃごちゃしていて何をどうすればいいのか判らない」みたいな……。

学校ではVisual Studio 2015というテキストエディタを使うことを推奨されているのですが

なぜ大学でVisual Studioを推奨しているかというと、それが初心者にとって一番ハードルが低い開発環境だからです。今あなたが苦労されているような面倒な設定は、インストールした時点ですべて終わっています。プロジェクトの新規作成でコンソールアプリを作れば、main関数が書かれたソースファイルまで自動で準備してくれます。

ちなみに、「Visual Studio」(Codeではない)は、「統合開発環境(IDE)」と呼ばれていて、テキストエディタの範疇を超えて開発に必要なツール類が一通り用意されている高機能なツールです。

ご質問の答えにはならないかもしれませんが、「Visual Studio」は特にWindowsでの開発においては最強のツールなので、面倒くさがらずに慣れておくと後々楽できますよ。市販の入門書もVisual Studioを教材としたものが豊富にありますから、それらを参考にするのもお勧めです。

投稿2019/10/17 01:52

catsforepaw

総合スコア5944

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

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

Zuishin

2019/10/17 01:55

同意します。学校で推奨されていないものを使った場合、他の学生とコミュニケーションとるのが難しくなったり、それ前提の講義の意味がわからなくなったりもしますし。そもそもライブラリが Visual Studio と gcc では微妙に違うので。
catsforepaw

2019/10/17 01:59

それもありますね。というかそれ重要ですね。 苦労して独自の環境を準備した後でVisual Studio前提の課題を出されたら目も当てられませんね。
退会済みユーザー

退会済みユーザー

2019/10/17 02:02 編集

なんで 2015 なんですかねぇ。。。 C だとあんまり変わらなかったりするのかな。
Zuishin

2019/10/17 02:05 編集

MS はバージョン上げると UI がガラッと変わったりするので、それを避けたかったんじゃないでしょうか。先生がついていけなくなるので。C はそもそも C11 にすら対応してないくらいなので、全然変わってないですね。
退会済みユーザー

退会済みユーザー

2019/10/17 02:10

そうなんですね。 古い感じが嫌で VSCode を選択したんだったら、VS 2019 の選択もありかなぁと思ったので。
catsforepaw

2019/10/17 02:15

te2jiさん 私もそれ気になりましたが、2015ならサポート期限はまだ先(2025年10月)ですし、Zuishinさんのおっしゃるように教える側の都合もあるでしょうからね。業務でも開発環境のバージョンアップには慎重な検討を要しますし。
退会済みユーザー

退会済みユーザー

2019/10/17 02:18

そうですね。 ちなみに俺は勝手に上げて怒られるタイプですw
Fsho

2019/10/17 04:33

みなさんコメントありがとうございます。 とりあえずここまでやってきたのでVSCode でC言語の環境だけは整えておこうかなと思います。 もちろんVS 2015の使い方も習得していきたいとは思っていますが、今のところC言語の勉強ができれば十分なのと、自分の性格上スッキリさせていたいということと、知らないものが多いということがとても嫌いなタイプなので必要になったら拡張していくというスタイルの方が良いと感じました。 変な理由ですみません。
guest

0

なんだっけな、複数のMinGWを入れてたり、Cygwinが混ざったりするとそんなような現象が起こったりすることがあったような。

C言語を学ぼうという人ならIDE(この場合は高機能エディタかも知れないけれど)のボタン一発に頼るのではなく、まずコマンドラインでコンパイルして期待する処理が行われるか試してみてはいかがでしょう。

常に全部のコンパイルをコマンドラインから手打ちでやれ、なんていいませんけれど、IDEの裏でどういう仕事がおこなわれているか、単純なコンパイルとちょっとしたmakeぐらいは(使えなくてもそういうものがあるという知識として)知っておくべきと思います。C言語ってのはコンピュータのはらわたを引っ掻き回すようなことをしようというのですから、コンピュータの動きは熟知しておかないと。

投稿2019/10/24 01:12

thkana

総合スコア7703

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

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

0

#include で指定したヘッダはインクルードパスから読み込まれます。これは通常環境変数で指定します。この環境変数が正しくない場合、あるいはそもそもコンパイラがインストールされていない場合にこのようなエラーが出ると思います。

追記

こちらも確認してください。

C++ - includePathが反映されない/VSCodeでのC言語環境構築|teratail

投稿2019/10/16 09:50

編集2019/10/16 09:54
Zuishin

総合スコア28669

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

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

Zuishin

2019/10/16 09:52

gcc はインストールされているようなので、回答を一部削除しました。
Fsho

2019/10/16 10:15

コメントありがとうございます。 少し聞きたいのですが、MinGWをインストールしたあと自分はMinGWのフォルダーをドキュメントのフォルダーに移しました。そしてPathを通すところで参考にしたサイトのように「C:\MinGW\bin」とはならずに「C:\Users\ユーザー名\Documents\ファイル名\MinGW\bin」というようにうちました。これはとくに問題はないのでしょうか? Pathを通すということがいまいち理解できていないので変な質問かもしれません。
Zuishin

2019/10/16 10:21

インストールしたあとで動かしているのは問題があります。元の場所に戻してからアンインストールし、もう一度希望の場所にインストールしなおしてください。
Fsho

2019/10/17 01:03

すみません、MinGWはどこからアンインストールできるのでしょうか?スタートメニューを探してもMinGWはありませんでした。MinGWというフォルダを直接削除すればよいのでしょうか?
Zuishin

2019/10/17 01:19

よく調べてみると、MinGW は PATH だけの問題のようなので、アンインストールしなくてもそれを書き換えれば良さそうです。現時点で動いているなら問題はないと思います。 問題は gcc ですね。環境変数 C_INCLUDE_PATH でヘッダのあるディレクトリを指定すればいいんですが、どこにあるかわかりますか? https://teratail.com/questions/108927 ここを見ると、D:/MinGW/lib/gcc/mingw32/6.3.0/include 以下のいくつかのディレクトリをインクルードパスに入れています。 この質問の場合は D ドライブですが、おそらく C ドライブでしょう。 .vscode ディレクトリの中にある c_cpp_properties.json は Visual Studio Code への指令なので、ここを変更するだけで自動的に gcc にも伝えてくれるかどうかはわかりません。とりあえず波線は出なくなると思うので、ここをまず変更してください。 そして波線が出なくなったけどビルドができないということであれば、改めて環境変数 C_INCLUDE_PATH を設定する必要があると思います。
Fsho

2019/10/17 04:34

上記のようにやって波線は消すことができました。あとはビルドなのですが、環境変数のところに何をかけばよいのでしょうか? C_INCLUDE_PATHという項目はないのでgccでパスを通したときのようにPathというところを編集するのですか? 質問が多くなってしまって申し訳ありません。
Zuishin

2019/10/17 04:41 編集

そうですね。無いと思います。PATH を編集するのではなく、C_INCLUDE_PATH という環境変数を新規作成してください。
Fsho

2019/10/17 14:36

変数値には c_cpp_properties.jsonの場所をかけばいいのですか?
Zuishin

2019/10/17 14:40

いえ、ヘッダファイルがあるディレクトリを PATH と同じくセミコロン区切りで書いてください。内容的には c_cpp_properties.son に書かれたものと同じものになります。
Fsho

2019/10/21 05:52

変数名:C_INCLUDE_PATH 変数値:C:/MinGW/lib/gcc/mingw32/8.2.0/include;     C:/MinGW/lib/gcc/mingw32/8.2.0/include/c++/tr1;     C:/MinGW/lib/gcc/mingw32/8.2.0/include/c++ というように入力しました。これであっていますか? この状態で実行してみましたが上の画像と同じエラーがでてしまいます。
Zuishin

2019/10/21 07:24

改行は入れず一行にしておいてください。 それでいいはずですが、そこに書いたディレクトリの中に stdio.h はありますか? 無ければその周辺を探してそれも追加してください。
Fsho

2019/10/21 17:09

stdio.hは C:/MinGW/lib/gcc/mingw32/8.2.0/include/c++/tr1にあったので追加はしませんでした。 .vscodeの場所がよくないのでしょうか?今はドキュメントの実行しようとしているC言語のコードと同じフォルダにいれています。  上記に追記で実行したときの画像を追加いたしました。
Zuishin

2019/10/21 21:39

C なのに C++ 用のヘッダを読んでいるからではないかと思います。 C 用のヘッダがどこかにありませんか?
Fsho

2019/10/23 04:20

stdio.hのことですか? それならMinGWのフォルダの中にいくつかありました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問