当我在 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