Compiling

找出執行檔的副檔名?

  • July 3, 2014

當我在 GNU+Linux 系統上從原始碼建構軟體時,在此./configure階段我經常看到以下行:

checking for suffix of executables...

如何在 bash 腳本中創建這樣的檢查?

我想知道這一點的原因是我想創建一個 makefile,它在 Cygwin 上使用後綴 .exe 進行編譯,但在真正的 GNU+Linux 上沒有後綴。

測試是通過編譯一個小的虛擬 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 生成配置腳本並將其用於您的目的。

這將為您提供文件的副檔名:

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

結果:

exe

引用自:https://unix.stackexchange.com/questions/140488