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