다른 아치로 만든자가 양조? …/brew/lib/libmysql.dylib: Mach-O 64-bit dynamically linked shared

homebrew를 통해 mysql-connector-c 레시피를 설치하려고 시도했지만 잘 빌드되었지만 x86_64 라이브러리를 생성합니다.

  $file ~/brew/lib/libmysql.dylib
  .../brew/lib/libmysql.dylib: Mach-O 64-bit dynamically linked shared library x86_64

그러나 내 프로젝트에는 i386 라이브러리가 필요합니다. CFLAGS와 LDFLAGS를 다음과 같이 주려고했습니다.

  CFLAGS="-arch i386 -arch x86_64" LDFLAGS="-arch i386 -arch x86_64" brew install mysql-connector-c

그러나 아무것도 바뀌지 않습니다-여전히 x86_64 만 바이너리를 빌드합니다. 사제를 이중 아치 라이브러리 또는 i386 라이브러리로 만들 수있는 방법이 있습니까? 커널 아키텍처가 중요하다면 x86_64로 설정되어 있습니다.



답변

다음을 시도해보십시오.

brew edit mysql-connector-c

그런 다음 “install”블록에서 초기화를 수정하십시오.

나는 이것을 시도하지 않았지만 다음과 같이해야합니다.

ENV['CFLAGS']='xxx'
ENV['LDFLAGS']='xxx'

여기에서 예제를 확인할 수 있습니다. homebrew 문제, 아무것도 설치할 수 없습니다 …


답변

DevIL 설치와 비슷한 문제가 발생했습니다. Homebrew는 적어도 ML에서 도구에 전달 된 명령 줄 매개 변수를 삭제하려고합니다.

$ brew install -v devil
...
brew: superenv removed: -arch i386
...

CFLAGS와 CXXFLAGS를 지정하기 위해 Walty의 답변에서와 같이 공식을 편집했지만 대신 표준 환경으로 설치를 실행했습니다.

$ brew install --env=std devil


답변

일부 수식에는 i386과 x86_64를 동시에 컴파일 할 수있는 범용 옵션이 있습니다.

$ brew options sdl
--universal
        Build a universal binary

mysql-connector-c옵션으로 제공하지 않습니다하지만 난 아주 쉽게 내가 작업 한 다른 공식에 옵션을 추가 발견 https://github.com/mxcl/homebrew/pull/18713/files


답변