回答:
単純な単一ソースプログラムの場合:
make foo
ここで、ソースファイルはfoo.cまたはfoo.cppなどです。
makefileも必要ありません。Makeには、ソースファイルを同じ名前の拡張子を除いた実行可能ファイルにビルドするのに十分な組み込みルールがあります。
ビルドしたばかりの実行可能ファイルを実行することは、プログラムを実行することと同じです。ただし、シェルは実行可能ファイルを検索$PATH
するために何があるかを検索するだけなので、ほとんどの場合、実行可能ファイルへのパスを指定する必要があります。.
)。
したがって、ビルドされた実行可能ファイルを実行するにはfoo
:
./foo
make main.cpp
がmake main
。
gcc main.cpp -o main.out
./main.out
Undefined symbols for architecture x86_64
問題については、コマンドを次のように変更しますgcc -lstdc++ main.cpp -o main.out
。:リンクを介してstackoverflow.com/questions/11852568/...
これは、すべてのUnixマシンで動作するコマンドです...私はLinux / Ubuntuで使用していますが、OS Xでも動作します。Terminal.appに次のコマンドを入力します。
$ g++ -o lab21 iterative.cpp
-o
文字Oはゼロではありません
lab21
実行可能ファイルになります
iterative.cpp
あなたのC ++ファイルです
そのコマンドを実行した後、ターミナルで次のように入力してプログラムを実行します。
$ ./lab21
Unix(Linux、Mac OS X、AIXなど)環境でのすべてのアプリケーション実行は、実行可能な検索パスに依存します。
次のコマンドを使用して、ターミナルでこのパスを表示できます。
エコー$ PATH
Mac OS X(デフォルト)では、コロンで区切られた次の検索パスが表示されます。
/ usr / bin:/ bin:/ usr / sbin:/ sbin:/ usr / local / bin:/ usr / X11 / bin
したがって、リストされたディレクトリ内の実行可能ファイルは、名前を入力するだけで実行できます。例えば:
猫mytextfile.txt
これが実行/bin/cat
され、mytextfile.txtが端末に表示されます。
実行可能ファイルの検索パスにない他のコマンドを実行するには、実行可能ファイルへのパスを修飾する必要があります。たとえば、Mac OS XIのホームディレクトリにMyProgramという実行可能ファイルがあるとすると、次のように完全に修飾できます。
/ Users / oliver / MyProgram
実行したいプログラムに近い場所にいる場合は、部分パスで名前を修飾できます。たとえば、私がMyProgram
ディレクトリ/Users/oliver/MyProject
Iにあり、ホームディレクトリにいた場合、次のように実行可能ファイル名を修飾して実行することができます。
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で一般的です。)
成功した場合はNOTHINGが返されますが、それで問題ありません。一般的には、失敗した場合に返品を受け取ります。
ただし、と入力ls
すると、同じディレクトリにあるファイルのリストが表示されます。たとえば、他のフォルダーinput.cppとoutput.binが表示されます。
ディレクトリ内から、今それを実行します ./outbut.bin
警告を表示するには、次の行を追加してください。後悔はしません。可能であれば、WISEをコンパイルします(警告はエラーです)。
- Wall -pedantic -Weffc++ -Werror
私はこのリンクと道順を見つけました:
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)
gcc hello.c -o a.out
?これはと同じことgcc hello.c
です。
ターミナルを使用した.Cファイルの実行は、2ステップのプロセスです。最初のステップは、ターミナルにgccと入力し、.Cファイルをターミナルにドロップして、次を押しEnterます:
username$ gcc /Desktop/test.c
2番目のステップでは、次のコマンドを実行します。
username$ ~/a.out
コマンドの下で実行するc ++ファイルを実行するには、ファイル名が「main.cpp」であると仮定します
1. c ++ファイルからオブジェクトファイルを作成するためにコンパイルします。
g++ -c main.cpp -o main.o
2. #include <conio.h>
はMacOSではサポートされていないため、Macでサポートされている代替手段を使用する必要があり#include <curses.h>
ます。次に、オブジェクトファイルを実行可能ファイルに変換する必要があります。使用するcurses.h
には、ライブラリを使用する必要があります-lcurses
。
g++ -o main main.o -lcurses
3.実行ファイルを実行します。
./main