C ++プログラムをコンパイルするときにバイナリファイルをバイナリディレクトリに配置するためのシェルスクリプトの作成方法

C ++プログラムをコンパイルするときにバイナリファイルをバイナリディレクトリに配置するためのシェルスクリプトの作成方法

というディレクトリBinaryと複数のソースファイルがあります。

./
├── Binary/
├── lesson02.cpp
├── lesson04.cpp
└── lesson06.cpp

ソースコードをコンパイルするとき

g++ lesson01.cpp -o lesson01

私はlesson01に掲示されたいBinary/

ベストアンサー1

シェルスクリプトは、シェルに対話的に入力するコマンドと非常によく似ています。この場合、この-oオプションはg++バイナリを配置する場所を示します。したがって、バイナリディレクトリに保存したいと言えばいいのです。

g++ lesson01.cpp -o Binary/lesson01

対話的に実行するか(シェルに入力して)、シェルスクリプトに入れることができます。どちらも同じことを行います。

#!/bin/sh
g++ lesson01.cpp -o Binary/lesson01

しかし、通常、これらのタスクを実行するには、シェルスクリプトの代わりにMakefileを使用します。

all:

Binary/%: %.cpp
    g++ -o "$@" "$<"  # Note: this must be a tab, not spaces. Make is annoying like that

次に、と入力するとmake Binary/lesson01Makeはプログラムをコンパイルします(ソースコードが既存のバイナリよりも最新の場合、またはバイナリが存在しない場合)。また、上部にall:後ろのすべてのプログラム(など)をリストし、必要に応じてそのプログラムをすべてコンパイルするように入力することもできます。all: Binary/lesson01 Binary/lesson02make

Makeまたはシェルスクリプトを使用して高度な操作を実行することもできます(たとえば、すべてのプログラムをリストするのではなく、コンパイルするプログラムのリストを決定するようにします)、これはもう少し複雑です。

おすすめ記事