入力として提供されたディレクトリからc / cppファイルをコンパイルします。

入力として提供されたディレクトリからc / cppファイルをコンパイルします。

というプログラムを書く必要があります。コンパイルディレクトリコマンドライン引数としてディレクトリパスを受け取り、すべてのc / cppファイルをコンパイルします。

たとえば、helloWorld.cファイルはhelloWorld.exe

compiled filesコンパイルされたすべてのファイルは現在のライブラリの下の名前のフォルダに配置され、正しい権限も必要です。

必要なコマンドをある程度知っていますが、一緒に使用することはできません。

ベストアンサー1

シェルループを使用してCコンパイラを明示的に呼び出します。

#!/bin/sh

mkdir -p "compiled files"

for src in "$1"/*.c "$1"/*.cpp; do
    case $src in
        *.c)   compiler=${CC:-cc}   ;;
        *.cpp) compiler=${CXX:-c++} ;;
    esac
    command "$compiler" -o "compiled files"/"$( basename "$src" "${src##*.}" )exe" "$src"
done

設定されていないか空でない限り、シェル/環境$CC変数を$CXXコンパイラとして使用します。この場合、ソースファイルのサフィックスをデフォルトとして使用するccか、それに応じて異なります。c++

暗黙の規則を使用してシェルループを使用してくださいmake

#!/bin/sh

mkdir -p "compiled files"

for src in "$1"/*.c "$1"/*.cpp; do
    make "${src%.*}" && mv "${src%.*}" "compiled files"/"$( basename "$src" "${src##*.}" )exe"
done

これは実行可能ファイルを構築するために暗黙的な規則を使用します(これらの規則は$CCなど$CXXの環境変数の影響を受けます$CFLAGS)。ビルドが正常に完了すると、.exeファイルにファイル名のサフィックスが含まれる必要があるという特定の要件を満たすように、実行可能ファイルの名前が変更されます。

おすすめ記事