10 votes

Construction Homebrew avec une archive différente ?

J'ai essayé d'installer la recette mysql-connector-c via homebrew, et elle se construit très bien, mais produit une bibliothèque x86_64 :

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

J'ai cependant besoin de la bibliothèque i386 pour mon projet. J'ai essayé de lui donner CFLAGS et LDFLAGS comme ceci :

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

mais rien ne change - il construit toujours le binaire x86_64 uniquement. Y a-t-il un moyen de faire en sorte que homebrew construise soit la bibliothèque dual arch, soit la bibliothèque i386 ? J'ai réglé l'architecture du noyau sur x86_64, si cela a de l'importance.

6voto

Wolfie Points 281

Vous pouvez essayer ce qui suit :

brew edit mysql-connector-c

et ensuite modifier l'initialisation dans le bloc "install".

Bien que je ne l'aie pas essayé, vous êtes censé faire quelque chose comme ça :

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

Vous pouvez consulter l'exemple ici : Problèmes avec homebrew, je ne peux rien installer...

5voto

Simon Rozer Points 1

J'ai rencontré un problème similaire en installant DevIL. Il semble que Homebrew essaie d'assainir les paramètres de ligne de commande passés aux outils, du moins sur ML :

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

Cela a fonctionné pour moi de modifier la formule comme dans la réponse de Walty pour spécifier CFLAGS et CXXFLAGS, mais de lancer install avec un environnement standard à la place :

$ brew install --env=std devil

3voto

FIFADDICT Points 11

Certaines formules ont une option universelle qui vous permet de compiler pour i386 et x86_64 en même temps :

$ brew options sdl
--universal
        Build a universal binary

Le site mysql-connector-c ne le propose pas en option, mais j'ai trouvé très facile d'ajouter cette option à une autre formule sur laquelle je travaillais : https://github.com/mxcl/homebrew/pull/18713/files

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X