다른 아치로 만든자가 양조?


9

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로 설정되어 있습니다.


어떤 Mac 버전을 사용하고 있습니까? Mac 10.8.1에서는 작동하지 않습니다. 수정 된 추출 스크립트를 여기에 참조로 붙여 넣을 수 있습니까? 고마워
Kane

답변:


5

다음을 시도해보십시오.

brew edit mysql-connector-c

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

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

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

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


그래서 거기에 무엇을 넣을까요? CFLAGS 정의?
StasM

주어진 링크는 말합니다 : ENV['CFLAGS']=ENV['CXXFLAGS']="-arch i386". i386은 약간 과도합니다.
harrymc

작동하는 것 같습니다. 라이브러리는 이제 i386입니다. 감사합니다!
StasM

@harrymc 및 StasM, 어떤 Mac 버전을 사용하고 있습니까? Mac 10.8.1에서는 작동하지 않습니다. 수정 된 추출 스크립트를 여기에 참조로 붙여 넣을 수 있습니까? 감사.
Kane

@ 케인 광산은 10.6.8입니다.
StasM

5

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

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

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

$ brew install --env=std devil

3

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

$ brew options sdl
--universal
        Build a universal binary

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.