/usr/bin에서 특정 바이너리를 사용하도록 ./configure를 어떻게 변경합니까?

/usr/bin에서 특정 바이너리를 사용하도록 ./configure를 어떻게 변경합니까?

macOS Catalina 10.15.6을 실행 중입니다. 내 질문은 GNU 도구를 사용한 컴파일과 더 관련되어 있으므로 다른 SE 사이트에 더 적합할 수 있습니다. 그렇다면 기꺼이 닫고 다른 곳에 문의하겠습니다.

소프트웨어(예: )를 컴파일하려고 하는데 wine-6.0컴파일하려면 이미 실행 파일이 있는 bison이 필요합니다 /usr/bin. 하지만 이 프로그램을 컴파일하려면 바이슨 버전이 3.0 이상이어야 하며 바이너리 /usr/bin버전은 2.7.6입니다. bison 3.7.6을 컴파일하고 원래 새로운 bison 3.7 바이너리를 넣을 계획이었지만 /usr/binmacOS의 파일 시스템 보호로 인해 /usr/bin/bison. 지금은 달리는 것을 멈출 수 없는 뭔가가 열려 있습니다.

다음을 사용할 때 ./configure --enable-win64다음 오류가 발생합니다 .

checking for bison... bison
checking whether bison is recent enough... no
configure: error: Your bison version is too old. Please install bison version 3.0 or newer.

이 문제를 해결하기 위해 수정이 PATH작동할 것이라고 생각했습니다. 이전에 bison 3.7.6 바이너리를 이동하여 /usr/local/bin/bison실행했지만 여전히 작동하지 않았습니다. bison > 3.0이 아닌 경우(시도했을 때와 동일) 들소를 건드리는 중 이전과 같은 오류):export PATH=/usr/local/bin:$PATH./configure

checking for bison... bison
checking whether bison is recent enough... no
configure: error: Your bison version is too old. Please install bison version 3.0 or newer.

이상한 점은 올바른 바이너리를 사용하여 Bison을 실행해 보았다는 것입니다.

$ bison -V
bison (GNU Bison) 3.7.6
Written by Robert Corbett and Richard Stallman.
...

$ which bison
/usr/local/bin/bison

configure.ac나는 또한 파일을 약간 조작하려고 시도했지만 문제는 내가 거기서 무엇을 하고 있는지 실제로 모른다는 것입니다. 구성 파일을 편집하고 다시 실행 autoconf한 후 사용해 ./configure도 여전히 작동하지 않습니다. 궁극적으로 내 질문은 다음과 같습니다. ./configure올바른 Bison 바이너리를 사용하고 있는지 어떻게 확인할 수 있습니까 ?

답변1

내 문제는 bison잘못된 설치입니다.

Brew가 모든 것을 어디에 넣을지 결정하도록 하는 대신 소스에서 들소를 컴파일한 다음 configure --prefix=/usr/local와인 컴파일을 생성한 makefile을 사용할 때 PATH가 올바른지 확인했고 작동했습니다.configure

문제는 버전을 확인하기 위해 빈 파일에서 Bison을 실행하는 종료 코드만 확인하는 와인 구성 스크립트로 인해 발생합니다. 손상된 설치로 인해 bison이 실패했기 때문에 오류 종료 코드가 제공되어 구성 스크립트에서 bison 버전이 부족하다고 생각하게 되었습니다.

관련 정보