UNIXカスタムシェルスクリプト/コマンド

UNIXカスタムシェルスクリプト/コマンド

私はコマンドラインインターフェイス(Linuxなど)に慣れていますが、次のようなコマンドを見つけました。

子[コマンド]

..例えば

子プッシュ

私は(C ++で開発された)プロジェクトを持っていますが、それが正しいかどうかを知りたいです。はい次のカスタムコマンドを生成できます。

(私のプロジェクトが「MyProject」だと仮定):

私のプロジェクトはコンパイルされます。

それでは、どちらがgccコンパイルコマンドを実行しますか?

注:「コンパイル」などの独自のコマンドを作成することは可能ですが、「参照」と「コマンド」を使用してコマンドを作成したいと思います。

ベストアンサー1

慣れたら、シェルスクリプトより簡単な方法は、次のようにすることです。作る、以前にその参照を見たことがあります。

非常に単純なmakefileは次のとおりです。

myproject: myproject.cpp
    g++ myproject.cpp -o myproject

指定しない場合、デフォルトでは最初のターゲットが選択されます。makeこの場合、ターゲットは1つだけなので、そこに見えるように実行されます。ターゲットはコロンの前のラベル(myproject)です。コロンの後ろは必須ターゲットです。これらのターゲットがリストされていない場合は、ファイルと見なされます。この場合、myprojectターゲット(「myproject」バイナリ)の出力後にmyproject.cppが変更されていない場合、makeは何もしません。その場合、再コンパイルされます。

状況がより複雑になるにつれて、makeの使用の価値はより明確になります。

flags = -Wall -g -O2

myproject: myproject.h myproject.cpp somepart.o
    g++ $(flags) somepart.o myproject.cpp -o myproject

somepart.o: somepart.h somepart.cpp
    g++ $(flags) -c somepart.cpp -o somepart.o

.h ファイルは必須コンポーネントです。ファイルを変更する場合は、そのファイルが必要な部分を再コンパイルする必要があるためです。これでmake somepart.o、オブジェクトをコンパイルしたり、make最新の「somepart.o」が必要な最初のターゲット(myproject)を使用できるようになり、使用できない場合はすべてのアイテムも作成できます。

bashスクリプトを使用してこれを行うのはそれほど簡単ではありません。おそらくそのmake理由です。残念ながら、「コツを身につけること」には時間がかかることがあります。 l0b0 は以下の項目にリンクされています。

http://www.gnu.org/software/make/manual/make.html

最初に注目すべき点は、makeが空白に敏感であるということです。特に、スペースの代わりに実際のタブを使用する場合はさらにそうです。

おすすめ記事