Unixコンソール/ MacターミナルでC / C ++をコンパイルおよび実行する方法
質問
UnixコンソールまたはMacターミナルでCまたはC ++をコンパイル/実行するにはどうすればよいですか
(私はそれを知っていて、それを忘れて、もう一度それを学び直します。それを書き留める時間です。)
解決
単純な単一ソースプログラムの場合:
make foo
ソースファイルがfoo.cまたはfoo.cppなどである場合
メイクファイルも必要ありません。 makeには、ソースファイルを同じ名前から拡張子を除いた実行可能ファイルにビルドするのに十分な組み込みルールがあります。
ビルドしたばかりの実行可能ファイルを実行することは、プログラムを実行することと同じですが、シェルは実行可能ファイルを見つけるために $ PATH
にあるもののみを検索するため、ほとんどの場合、実行可能ファイルへのパスを指定する必要があります、ほとんどの場合、現在のディレクトリ(。
)は含まれません。
したがって、ビルドされた実行可能ファイル foo
を実行するには:
./foo
他のヒント
gcc main.cpp -o main.out
./main.out
これはすべてのUnixマシンで動作するコマンドです... Linux / Ubuntuで使用しますが、OS  Xでも動作します。 Terminal.app に次のコマンドを入力します。
$ g++ -o lab21 iterative.cpp
-o
は文字Oがゼロではない
lab21
が実行可能ファイルになります
iterative.cpp
はC ++ファイルです
このコマンドを実行した後、ターミナルで次を入力してプログラムを実行します。
$ ./lab21
2つのステップ:
最初:
make foo
then:
./foo
Unix(Linux、Mac  X、AIXなど)環境でのすべてのアプリケーションの実行は、実行可能な検索パスに依存します。
このコマンドでターミナルにこのパスを表示できます:
echo $ PATH
Mac OS X(デフォルト)では、次のコロンで区切られた検索パスが表示されます:
/ usr / bin:/ bin:/ usr / sbin:/ sbin:/ usr / local / bin:/ usr / X11 / bin
したがって、リストされたディレクトリ内の実行可能ファイルは、名前を入力するだけで実行できます。例:
cat mytextfile.txt
これは / bin / cat
を実行し、mytextfile.txtを端末に表示します。
実行可能ファイルの検索パスにない他のコマンドを実行するには、実行可能ファイルへのパスを修飾する必要があります。 Mac  OS  XのホームディレクトリにMyProgramという実行可能ファイルがあったとしましょう。次のように完全修飾できます。
/ Users / oliver / MyProgram
実行したいプログラムに近い場所にいる場合、名前を部分パスで修飾できます。たとえば、 MyProgram
がディレクトリ / Users / oliver / MyProject
にあった場合、私は自分のホームディレクトリにいたので、このような実行可能ファイル名を修飾して実行させることができます。 :
MyProject / MyProgram
または、ディレクトリ / Users / oliver / MyProject2
にいて、 / Users / oliver / MyProject / MyProgram
を実行したい場合、次のような相対パスを使用できますこれを実行するには:
../ MyProject / MyProgram
同様に、 MyProgram
と同じディレクトリにいる場合は、「現在のディレクトリ」を使用する必要があります。相対パス。現在のディレクトリは、ピリオド文字とそれに続くスラッシュです。例:
./ MyProgram
現在使用しているディレクトリを確認するには、 pwd
コマンドを使用します。
一般的に、プログラムをハードディスク上の所定の場所に置き、その名前を限定せずに実行したい場合。たとえば、" bin"がある場合、他のプログラムの定期的に使用されるシェルスクリプトのホームディレクトリ内のディレクトリ。実行可能検索パスを変更するのが賢明かもしれません。
これは、ホームディレクトリにある既存の .bash_profile
ファイルを作成または編集し、次の行を追加することで簡単に実行できます。
#!/bin/sh
export PATH=$PATH:~/bin
ここでは、チルダ(〜)文字が/ Users / oliverのショートカットとして使用されています。また、ハッシュバン(#!)行はファイルの最初の行である必要があることに注意してください(まだ存在しない場合)。また、この手法ではログインシェルがbash(Mac  OS  XおよびほとんどのLinuxディストリビューションのデフォルト)である必要があることに注意してください。また、〜/ bin
にインストールされたプログラムをシステム実行可能ファイルより優先して使用する場合は、次のようにエクスポートステートメントの順序を変更する必要があります。
export PATH=~/bin:$PATH
ライアン、私はこれがコメントではなく答えになるように変更しています。このすべてを"ターミナル"で行います。
G ++コンパイラを使用するには、これを行う必要があります:
-
*。cppファイルを保存したディレクトリに移動します。
cd〜/ programs / myprograms /
(〜はあなたの家のショートカット、つまり/ Users / Ryan / programs / myprograms /で、実際に使用した場所に置き換えます。) -
コンパイル
g ++ input.cpp -o output.bin
(output.binには任意の拡張子を付けることができます。実際、binはUnixでは一般的です。)成功した場合は何も返されないはずです。それは大丈夫です。一般的に、失敗時にリターンを受け取ります。
ただし、
ls
と入力すると、同じディレクトリにあるファイルのリストが表示されます。たとえば、他のフォルダinput.cppおよびoutput.binが表示されます -
ディレクトリ内から、
./ outbut.bin
で実行します
現在のディレクトリがパスにない場合、構文は ./ [プログラムの名前]
です。
たとえば、 ./ a.out
最良の警告を得るには以下を追加してください。後悔することはありません。可能であれば、WISEをコンパイルします(警告はエラーです)
- Wall -pedantic -Weffc++ -Werror
これを行うためのコンパクトな方法は次のとおりです。
make foo && ./これを行うためのコンパクトな方法は次のとおりです。
<*>
ワンライナーが必要なので、実行ファイルを簡単に再実行できます。
ワンライナーが必要なので、実行ファイルを簡単に再実行できます。
CまたはC ++プログラムをコンパイルするには、一般的なコマンドがあります:
-
make filename
-
./ filename
makeは、ソースファイルを同じ名前の実行可能ファイルにビルドします。ただし、標準的な方法を使用する場合は、gccコンパイラを使用してCプログラムを作成できます&amp; g ++ for c ++
Cの場合:
gcc filename.c
./a.out
C ++の場合:
g++ filename.cpp
./a.out
makefile
を使用します。非常に小さい(= 1ファイル)プロジェクトでも、物事をテストするためにいくつかのコンパイラ設定を設定できるため、おそらく努力する価値があります。デバッグと展開は、この方法ではるかに簡単に機能します。
make
マニュアルを読む、一見するとかなり長いように見えますが、ほとんどのセクションはざっと目を通すだけです。全体として数時間かかり、生産性が大幅に向上しました。
このリンクと道順が見つかりました:
http://www.wesg.ca/2007/11/how-to-write-and-compile-c-programs-on-mac-os-x/
基本的にあなたがすること:
gcc hello.c
./a.out (or with the output file of the first command)
c / cppファイルがあるディレクトリに入力するだけです。
cコードのコンパイルと実行用。
$gcc filename.c
$./a.out filename.c
c ++コードのコンパイルおよび実行用。
$g++ filename.cpp
$./a.out filename.cpp
&quot; $&quot;デフォルトのMac端末記号です
Mac端末からcppソースコードをコンパイルして実行するには、次の手順を実行する必要があります。
- cppファイルのパスがsomePath / fileName.cppの場合、最初にパスsomePathのディレクトリに移動します
- fileName.cppをコンパイルするには、c ++ fileName.cpp -o fileNameと入力します
- プログラムを実行するには、。/ fileNameと入力します
ターミナルを使用した.Cファイルの実行は2段階のプロセスです。 最初の手順は、ターミナルでgccと入力し、.Cファイルをターミナルにドロップしてから、 Enter :
を押すことです。username$ gcc /Desktop/test.c
2番目のステップで、次のコマンドを実行します。
username$ ~/a.out