/usr/bin을 통해 특정 바이너리를 사용하도록 ./configure를 어떻게 변경할 수 있습니까?

/usr/bin을 통해 특정 바이너리를 사용하도록 ./configure를 어떻게 변경할 수 있습니까?

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

소프트웨어(즉, )를 컴파일하려고 하는데 wine-6.0컴파일하려면 bison이 필요합니다. 이에 대한 실행 파일은 이미 /usr/bin. 그러나 프로그램을 컴파일하려면 bison의 버전이 3.0 이상이어야 하며 바이너리는 /usr/bin버전 2.7.6입니다. bison 3.7.6을 컴파일했고 새 bison 3.7 바이너리를 로 옮기려고 했지만 /usr/binmacOS의 파일 시스템 보호로 인해 /usr/bin/bison. 파일 시스템 잠금을 비활성화하려면 복구 모드에서 Mac을 다시 시작해야 하지만 현재 실행을 멈출 수 없는 열려 있는 것이 있습니다.

사용하면 ./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보다 크다는 오류가 발생합니다(bison을 망치려고 시도하기 전과 동일한 오류입니다).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가 모든 것을 넣을 위치를 결정하도록 하는 대신 소스에서 Bison을 컴파일한 configure --prefix=/usr/local다음 와인 컴파일을 위해 makefile을 생성하는 데 사용할 때 PATH가 올바른지 확인했고 configure작동했습니다.

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

관련 정보