找出可执行文件的扩展名?

找出可执行文件的扩展名?

当我在 GNU+Linux 系统上从源代码构建软件时,在这个./configure阶段我经常看到以下行:

checking for suffix of executables...

如何在 bash 脚本中创建这样的检查?

我想知道这一点的原因是我想创建一个 makefile,其中它在 Cygwin 上使用后缀 .exe 进行编译,但在真正的 GNU+Linux 上没有后缀。

答案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

相关内容