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
その後:
./foo
Unix(Linux、Mac OS 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文を並べ替える必要があります。
export PATH=~/bin:$PATH
Ryan、これはコメントではなく回答になるように変更しています。これらすべてを「ターミナル」で行います。
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
を付けて実行します。
現在のディレクトリがパスにないと仮定すると、構文は./[name of the program]
です。
例えば./a.out
最良の警告を得るために以下を追加してください、あなたはそれを後悔しないでしょう。可能であれば、WISEをコンパイルしてください(警告はエラーです)
- Wall -pedantic -Weffc++ -Werror
これを実行するためのコンパクトな方法は、次のとおりです。
make foo && ./$_
ワンライナーを用意して、実行可能ファイルを簡単に再実行できるようにします。
CまたはC++プログラムをコンパイルするには、一般的なコマンドがあります。
make filename
./filename
makeはあなたのソースファイルを同じ名前の実行ファイルに作ります。しかし、もしあなたが標準的な方法を使いたいのであれば、gccコンパイラを使ってCプログラムを構築することができます。
Cの場合:
gcc filename.c
./a.out
C++の場合
g++ filename.cpp
./a.out
makefile
を使用してください。非常に小さい(= 1ファイル)プロジェクトの場合でも、テストするためにコンパイラー設定をいくつか設定できるので、その努力はおそらく価値があります。このようにすると、デバッグと配置がはるかに簡単になります。
make
manual を読んでください、一見するとかなり長いように見えますが、ほとんどのセクションであなたは読み飛ばすことができます。全体として、それは私に数時間かかり、私をずっと生産的にしました。
私は道順とこのリンクを見つけました:
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)
Mac端末からcppソースコードをコンパイルして実行するためには、次のことをする必要があります。
c/cppファイルがあるディレクトリに入るだけです。
cコードをコンパイルして実行するためのものです。
$gcc filename.c
$./a.out filename.c
c ++コードをコンパイルして実行するためのものです。
$g++ filename.cpp
$./a.out filename.cpp
"$"はデフォルトのMac端末シンボルです