ターミナルを使用してMacOS XでCプログラムを実行するにはどうすればよいですか?


81

私はCを初めて使用します。これが私の「Hello、world!」です。プログラム。

#include <stdio.h>

int main(void)    
{
  printf("Hello, world!\n");
  return 0;
}

ターミナルを使用して実行しようとすると、次のように表示されます。

MacBook-Pro-MacBook:~ macbook$ /Users/macbook/Desktop/peng/Untitled1
-bash: /Users/macbook/Desktop/peng/Untitled1: Permission denied
MacBook-Pro-MacBook:~ macbook$ 

どうして?



ファイル「Untitled1」とは何ですか?あなたが質問に含めたソースを含むファイルまたは他の何かですか?
pasaba poraqui15年

交換するpintfことでprintf、同じ行にint型とメインを保ちます。
ウォルターA

回答:


165

まず、プログラムをとして保存しますprogram.c

今度はコンパイラが必要なので、App Storeにアクセスして、Appleのコンパイラおよび開発ツールであるXcodeをインストールする必要があります。App Storeを見つける方法は?入力して「SpotlightSearch」を実行し、入力Spaceを開始App StoreしてヒットしますEnterして、正しく推測されたらします。

AppStoreは次のようになります。

ここに画像の説明を入力してください

Xcodeは上のようになりますApp Storeで

ここに画像の説明を入力してください

次に、ターミナルにコマンドラインツールをインストールする必要があります。ターミナルの起動方法は?別の「SpotlightSearch」を実行する必要があります。つまり、Space入力して入力Terminalを開始Enterし、推測されTerminalたときにヒットします。

次に、次のようなコマンドラインツールをインストールします。

xcode-select --install

次にgcc、次のような大きくて醜いソフトウェア開発GUIを起動せずに、次の行のように実行するだけでコードをコンパイルできますXcode

gcc -Wall -o program program.c

:OS Xの新しいバージョンでclanggcc、次のようにの代わりにを使用します。

clang program.c -o program

次に、次のコマンドで実行できます。

./program
Hello, world!

プログラムがC ++の場合は、次のいずれかのコマンドを使用することをお勧めします。

clang++ -o program program.cpp
g++ -std=c++11 -o program program.cpp
g++-7 -std=c++11 -o program program.cpp

6
それを行うgcc -Wall -o program program.cと、コードが機能しない理由のいくつかを示す有用なコンパイラ警告(すべてではありませんが)が表示されます。
Schwern 2017年

いい答えですが、clangを明示的に呼び出す必要はないことに注意してください-とにかくgccはclangにシンボリックリンクされています。
ポールR

51

まず、プログラムを修正してください。

#include <stdio.h>

int main(void) {
   printf("Hello, world!\n"); //printf instead of pintf
   return 0;
}

ファイルを名前を付けて保存HelloWorld.cし、ターミナルに入力します。

gcc -o HelloWorld HelloWorld.c

その後、次のように実行可能ファイルを実行します。

./HelloWorld

あなたは見ているは​​ずです Hello World!


7
「ファイルをUntitled.cとして保存」することをお勧めします。さらに良いことに、より意味のあるファイル名を使用してください。
Jongware 2015

11

2019年の作業 デフォルトでは、ターミナルを使用してname.cをコンパイルできます

 cc name.c

実行する必要がある場合は、

 ./name.out

2
名前が何であれ、f "{name} .out"ではなく "a.out"として表示されます。何らかの理由で常に「a」です。
Flaming_Dorito

1
@Flaming_Dorito、これは実行可能オブジェクトファイルを作成するためのデフォルトの動作です。ただし、好みの名前を付けることもできます。タイプ-> cc -o name name.c
YashTamakuwala19年

@YashTamakuwalaああ、なるほど。おかげで
Flaming_Dorito

9

「Cプログラム」は実行されるべきではありません。これは、端末から実行できる「実行可能」プログラムにコンパイルすることを目的としています。そのためのコンパイラが必要です。

ああ、そしてあなたの最後の質問(「なぜ?」)への答えは、あなたが実行しようとしているファイルには実行可能権限が設定されていないということです(コンパイラは通常バイナリで自動的に行います、それはあなたが試みていたと推測しましょうソースコードをスクリプトとして実行するため、コンパイルのヒントになります。)


1
ベストアンサー!A "C-program" is not supposed to be run.
エディ

4

これをする:

  1. オープンターミナル

  2. ターミナルに入力します:nano; これは、端末で使用できるテキストエディタです。あなたがこれをするとき。このようなものが表示されます。

  3. ここにCプログラムを入力できます

  4. タイプcontrol(^) + x-出口まで>は手段。

  5. 入力しyてファイルを保存します

  6. ファイル名を書きます。例helloStack.c.cを追加することを忘れないでください)

  7. これが表示されたら、入力します gcc helloStack.c

  8. その後./a.out:これはあなたにあなたの結果を与えるはずです!!

3

macosでc-programをコンパイルするには、以下の手順に従ってください。

ターミナルでcdコマンドを使用して、cプログラムの場所に移動し
、以下にあるコマンドを入力し
ます。makefilename
、次に./filenameと入力し
ます。


2

最新のmacOSでacプログラムをコンパイルするには、ファイルを.c拡張子で保存した後、ファイルが保存されているパスに到達したら、ターミナルに次のように入力します。

cc yourfilename.c

コンパイル後にすべてのエラー(存在する場合)を確認したら、コードを実行するために次のように入力します。

./a.out

これらのコマンドはmacOSMojaveでテストされており、完全に正常に機能しています。


0

答えはchmod755helloです-ファイルを実行可能にします...面白いので誰も答えませんでした。MacOSでも同じ問題が発生しましたが、現在は解決されています。

nano hello.c make hello chmod 755 hello次に、。/ helloで実行します。

clang --version Apple LLVMバージョン8.0.0(clang-800.0.42.1)ターゲット:x86_64-apple-darwin15.6.0

何もインストールされていません、nano make(clang)chmod-すべてMacOS内にすでにあります


-1

1)まず、Mac用のGCCコンパイラをインストールする必要があります(Googleで検索してネットからインストールします)

2)Cファイルを保存しているパスを覚えておいてください

3)ターミナルに移動し、パスを設定します

例-ドキュメントフォルダのProgramCを新しいフォルダに保存した場合

   then type this in Terminal
    cd Document
    cd ProgramC

4)これで、Cプログラムを保存したフォルダーにいることがわかります(プログラムをHello.cとして保存しました)。

5)プログラムをコンパイルします

   make Hello
   ./hello
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.