実行可能ファイルの拡張子をお探しですか?

実行可能ファイルの拡張子をお探しですか?

GNU+Linux システムのソースからソフトウェアをビルドするとき、./configureこの段階でしばしば次の行が表示されます。

checking for suffix of executables...

Bashスクリプトでこれらのチェックをどのように作成できますか?

私がこれを知りたいのは、Cygwinではサフィックス.exeでコンパイルされますが、実際のGNU + Linuxではサフィックスなしでコンパイルされるmakefileを作成したいからです。

答え1

テストは、小さなダミーCプログラムをコンパイルし、コンパイラが出力ファイルの名前を指定する方法を確認することによって実行されます。

次の例は簡単にconfigure実行中のタスクのバージョン

#!/bin/sh

cat << EOT > dummy.c
int main(int argc, char ** argv) {
    return 0;
}
EOT

gcc -o dummy dummy.c

if [ -f dummy.exe ] ; then
  # exe
fi

autoconfを使用して構成スクリプトを生成し、目的に合わせて使用​​することをお勧めします。

答え2

これにより、ファイル拡張子が提供されます。

FILENAME=/tmp/testfile.exe
echo "${FILENAME##*.}"

結果:

exe

関連情報