Homebrew zbudować z innym łukiem?


9

Próbowałem zainstalować przepis mysql-connector-c za pośrednictwem homebrew i buduje się dobrze, ale tworzy bibliotekę x86_64:

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

Potrzebuję jednak biblioteki i386 do mojego projektu. Próbowałem nadać mu CFLAGS i LDFLAGS w następujący sposób:

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

ale nic się nie zmienia - nadal buduje x86_64 tylko binarnie. Czy jest jakiś sposób, aby homebrew zbudował bibliotekę z podwójnym łukiem lub bibliotekę i386? Mam architekturę jądra ustawioną na x86_64, jeśli ma to znaczenie.


jakiej wersji Mac używasz? Nie mogę sprawić, aby działał na moim komputerze Mac 10.8.1. Czy mógłbyś tutaj wkleić zmodyfikowany skrypt parzenia? Wielkie dzięki.
Kane

Odpowiedzi:


5

Możesz spróbować:

brew edit mysql-connector-c

a następnie zmodyfikuj inicjalizację w bloku „zainstaluj”.

Chociaż tego nie wypróbowałem, powinieneś zrobić coś takiego:

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

Możesz sprawdzić przykład tutaj: problemy z homebrew, nic nie można zainstalować ...


Co bym tam umieścił? Definicje CFLAGS?
StasM

Podana Link mówi: ENV['CFLAGS']=ENV['CXXFLAGS']="-arch i386". i386 jest nieco przesadny.
harrymc

wygląda na to, że działa, biblioteka to teraz i386. Dziękuję Ci!
StasM

@harrymc and StasM, z której wersji Maca korzystasz? Nie mogę sprawić, aby działał na moim komputerze Mac 10.8.1. Czy mógłbyś tutaj wkleić zmodyfikowany skrypt parzenia? Dzięki.
Kane

@Kane Mine ma 10.6.8.
StasM,

5

Wystąpił podobny problem z instalacją DevIL. Wygląda na to, że Homebrew próbuje odkazić parametry wiersza poleceń przekazane do narzędzi, przynajmniej w ML:

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

Pomogło mi edytowanie formuły jak w odpowiedzi Walty, aby określić CFLAGS i CXXFLAGS, ale zamiast tego uruchom instalację ze standardowym środowiskiem:

$ brew install --env=std devil

3

Niektóre formuły mają uniwersalną opcję, która pozwala na kompilację zarówno dla i386, jak i x86_64 w tym samym czasie:

$ brew options sdl
--universal
        Build a universal binary

mysql-connector-cNie oferuje go jako opcja, ale uważam, że bardzo łatwo dodać opcję do innego wzoru byłem w pracy: https://github.com/mxcl/homebrew/pull/18713/files

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.