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

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

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

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

Q&A

解決済

3回答

6021閲覧

ターミナルでパスが通りません。

jack_kanzaki

総合スコア106

C

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

0グッド

0クリップ

投稿2019/02/14 13:51

編集2019/02/14 13:54

参考書を元に以下のコードを書きました。

#include <stdio.h> int main(void) { int userNum; userNum = -6; if (userNum > 0) { printf("Positive.\n"); } else { printf("Non-positive, converting to 1.\n"); userNum = 2; } printf("Final: %d\n", userNum); return 0 }

その後、コンパイルされているかを確認しようと思い、
ターミナルに、 dir 3ifelseFixedError.c と入力したところ、

__dir : パス 'C:\vscode\3ifelseFixedError.c' が存在しないため検出できません。
発生場所 行:1 文字:1

  • dir 3ifelseFixedError.c
  • + CategoryInfo : ObjectNotFound: (C:\vscode\3ifelseFixedError.c:String) [Get-ChildItem], ItemNotFoundException + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand__

と表示されてしまいました。

原因を教えていただけると、幸いです。

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

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

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

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

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

guest

回答3

0

ベストアンサー

まずC言語のプログラムを実行するためにはそのコンパイルという作業が必要です。

  1. ソースコードを書く。
  2. コンパイルする。
  3. エラーがなければ実行ファイルができるので、実行。

このコンパイル作業は自分でやらなければいけません。ソースコードを書いて保存しても勝手にコンパイルされるわけではないのです。
このコンパイル作業を行ってくれるプログラムのことをコンパイラと言います。

コンパイラは最初から入っているわけではないので、自分でインストールする必要があります
お使いの参考書ではどのコンパイラをすすめられているか分からないのですが、とりあえず Windows でのコンパイラというと次のようなものがあります:

  • Visual Studio Community 2017
  • gcc (MinGW / MSYS2 / WSL)
  • clang (Windows / MinGW / MSYS2 / WSL)

基本的にはどのコンパイラでも変わりありません。このうち Visual Studio Community 2017 は統合開発環境 (IDE) といって、ソースコードの編集からコンパイル・実行がそれ一つで完結するのでおすすめされます。それ以外のものはターミナルからコマンドを打ち込んでコンパイルを実行します。例 (gcc の場合) :

$ gcc 3ifelseFixedError.c

提示のエラーメッセージから推察するに、 Visual Studio Code (名前が似ていて紛らわしいですが、これは Visual Studio Comunity 2017 とは違い、ただファイルを編集するだけの、 エディタ と呼ばれるプログラムです) とターミナル (PowerShell と思われます) を使って勉強されているようなので、 gcc か clang のどちらかのコンパイラをインストールする必要があります。インストール手順については、インターネットで windows gcc インストール などと調べてみると出てくると思います。

お使いの参考書の最初の章や付録にコンパイラについての説明はありませんでしたか?もし何か説明があればそれに従ってみるのもよいかもしれません。


ちなみに、あなたが実行したコマンドとエラーですが:

C:\vscode PS> dir 3ifelseFixedError.c dir : パス 'C:\vscode\3ifelseFixedError.c' が存在しないため検出できません。 発生場所 行:1 文字:1 + dir 3ifelseFixedError.c + ~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (C:\vscode\3ifelseFixedError.c:String) [Get-ChildItem], ItemNotFoundException + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand

これについては、

C:\vscode PS> dir 3ifelseFixedError.c

意味: 今いるディレクトリの 3ifelseFixedError.c というファイルの情報を表示しなさい。

dir : パス 'C:\vscode\3ifelseFixedError.c' が存在しないため検出できません。 発生場所 行:1 文字:1 + dir 3ifelseFixedError.c + ~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (C:\vscode\3ifelseFixedError.c:String) [Get-ChildItem], ItemNotFoundException + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand

意味: 3ifelseFixedError.c は存在しなかったので情報と言われても分かりません。

ソースコードを保存した場所は確かに C:\vscode だったか、また、ファイル名は 3ifelseFixedError.c だったかを確認してください。普通にエクスプローラで C:\vscode を開いて見てみればよいです。

投稿2019/02/14 16:40

Eki

総合スコア429

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

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

jack_kanzaki

2019/02/14 16:56

ありがとうございます。 私はMinGWをインストールしました。 その場合はどのようにしたら、よろしいのでしょうか。 gcc 3ifelseFixedError.cとターミナルに入力したところ、 gcc.exe: error: 3ifelseFixedError.c: No such file or directory gcc.exe: fatal error: no input files compilation terminated. ファイル名に関しては、保存がうまくなされていないようでした。 しかし、コードの部分でCTRL+Sを押したのですが、 なぜか保存がなされていませんでした。 再びの質問すみません。
Eki

2019/02/14 17:14

gcc のエラーメッセージを読んでみましたか? "No such file or directory" 、つまり、「そのようなファイルやディレクトリはありません」と言っています。つまり gcc には 3ifelseFixedError.c というファイルが見えていないという意味です。それはその通りで、保存がうまくいっていないからですね。 なぜ保存がされていないのか、残念ながらこの状態では分かりかねますが、とりあえずもう一度エディタが開いているファイルの場所を確認してみてはどうでしょう。手元で適当に VSCode を開いてみたところ、タブとエディタ本体の隙間あたりに "c: > vscode > ..." のようにパスが表示されているように見えました。 (私は VSCode には詳しくないので間違っていたらスミマセン)
guest

0

その後、コンパイルされているかを確認しようと思い、 ターミナルに、 dir 3ifelseFixedError.c と入力したところ

なんでそれでコンパイルされているか確認できると思ったのかが謎です。

エラーそのものは

パス 'C:\vscode\3ifelseFixedError.c' が存在しないため検出できません。

が全てですが、とりあえずあなたがやっていることは根本的に誤っています。


眠くて反射神経的な回答をしてしまったので反省の意味を込めて自分なりに解説を。

C言語のソースコードを実行するまで

普通C言語のソースコードを実行するとなると、

  1. C言語のソースコードを書く
  2. コンパイラでコンパイル
  3. 出来上がった実行ファイル(バイナリ)を実行

という流れになります。インタープリターあるやろとかコンパイル時Cコンパイラは?とかstatic/shared libraryはどこいったという声も出そうですがとりあえずそういうのは後で。

Windowsにおける実行ファイル

拡張子が.exeのファイルを一般的に実行ファイルとみなしますが、厳密にはPortable Executable(PE) formatに則ったbinary fileであることも必要です。まあ自分でコンパイラを作るのでもない限りそこまで気にすることはありませんが。

Windows上で動くCコンパイラの例

  • Visual Studio付属のcl.exe: どちらかというとC++コンパイラで、Cコンパイラとしては貧弱。C99という太古の昔のC言語規格にいまだきちんと対応していない
  • gcc: GNU C Compiler、自由主義ソフトウェア、きちんとC11も扱えるが醜悪な独自拡張(VLAISとか)もある
  • clang: GCCの開発速度が遅かった時代に業を煮やしたAppleが他の会社も巻き込んで作った。きちんとC11も扱える
  • bcc32: Borlandが作ったコンパイラ。前世紀末は実行速度面で重宝した時期もあるようだが、もはや出番はない

名前だけ知っていればよい。

Windows上で手っ取り早くgcc/clangを使うには

msys2というプロジェクトがあって、これを利用すると常にほぼ最新のgcc/clangを始めとする様々なソフトウェアが利用できる。しかもArch Linuxと同じpacmanをパッケージマネージャに採用。何を言っているのか分からないだって?いいんだよとりあえずこれ使えば。気が向いたときにpacman -Syuuと打つだけでほぼ最新のgcc/clangを始めとする様々なソフトウェアが常に利用できる。

ググれば初期導入のやり方はいくらでも出るので割愛。

gcc/clangでの初歩的なコンパイル方法

gcc -Wall -Wextra -pedantic -std=c11 -o a.exe a.c clang -Wall -Wextra -pedantic -std=c11 -o a.exe a.c

いずれかのようにすれば良い。-Wall -Wextra -pedanticをつけておくと初心者がやらかしがちな多くのミスをコンパイラが叱ってくれる。ボーっと生きてんじゃねーよ!

-oのあとには生成ファイルの名前を指定する。デフォルトでa.exeだが普通別の名前にする。

そのさらにあとにコンパイルするソースファイルを列挙する。いや、-oより前でもいいこともあるんだが、稀にうまくいかなくなるので-oで先に出力を指定するほうがよい。

コンパイルできたかの確認方法

そもそもコンパイルエラーが出なければコンパイルできていると言えるが、別の手段で確認したいというのであれば、単にコンパイルしたdirectoryをエクスプローラかなにかで開いて生成ファイルを探してあればできている。

投稿2019/02/14 14:04

編集2019/02/15 03:59
yumetodo

総合スコア5850

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

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

jack_kanzaki

2019/02/14 16:26

すみません。 初心者で、いろいろと勝手がわかっておりませんでした。 解決法や、どこを改善していけばいいのか、 教えてくださると幸いです。
Eki

2019/02/14 16:42

さすがに、「あなたのやっていることは謎で根本的に誤っている」とだけ言っても分からないと思います。回答になっていないと思われるので、低評価を入れさせていただきました。
yumetodo

2019/02/15 03:59

さすがにまずいよなと思い訂正しました。
Eki

2019/02/15 08:42

編集を受けて、低評価は撤回します。
guest

0

VS Codeでの Cの実行については、検索すると結構ありますね。

Visual Studio Codeを使用したC言語学習の準備

VSCodeから直接コンパイルしたい

VSCode+MinGWでC/C++のプログラミング環境

この辺を参考されたら、どうでしょうか。
手元のVS Codeではまだできていませんが、、、
(Pythonはこちらで実行)

まずは、上記のサイトまたは、類似のサイトで環境設定されることを勧めます。


もっとも簡単な Cプログラムだと、Visual Studio Comunity /Expressの入った環境のコマンドプロンプトから、 CL [Program].c で大抵、済んでいますが。
--> VS Codeで編集/保存し、コマンドプロンプトから、CL [Program].c でコンパイル、 [program].exe の実行の手順。

投稿2019/02/15 14:17

pepperleaf

総合スコア6383

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問