Homebrew build con arco diverso?


9

Ho provato a installare la ricetta mysql-connettore-c via homebrew, e funziona bene, ma produce la libreria x86_64:

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

Tuttavia ho bisogno della libreria i386 per il mio progetto. Ho provato a dargli CFLAGS e LDFLAGS in questo modo:

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

ma non cambia nulla: crea ancora x86_64 solo binario. C'è un modo per fare in modo che homebrew costruisca una libreria dual arch o una libreria i386? Ho l'architettura del kernel impostata su x86_64, se è importante.


quale versione di Mac stai usando? Non riesco a farlo funzionare sul mio Mac 10.8.1. Potresti incollare qui il tuo script brew modificato come riferimento? Molte grazie.
Kane,

Risposte:


5

Puoi provare quanto segue:

brew edit mysql-connector-c

e quindi modificare l'inizializzazione nel blocco "installa".

Anche se non l'ho provato, dovresti fare qualcosa del genere:

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

Puoi controllare l'esempio qui: Problemi con homebrew, impossibile installare nulla ...


Quindi cosa ci metterei? Definizioni CFLAGS?
StasM,

La data di collegamento dice: ENV['CFLAGS']=ENV['CXXFLAGS']="-arch i386". i386 è un po 'eccessivo.
harrymc,

sembra funzionare, la libreria ora è i386. Grazie!
StasM

@harrymc e StasM, quale versione di Mac stai usando? Non riesco a farlo funzionare sul mio Mac 10.8.1. Potresti incollare qui il tuo script brew modificato come riferimento? Grazie.
Kane,

@Kane Mine è 10.6.8.
StasM,

5

Si è verificato un problema simile durante l'installazione di DevIL. Sembra che Homebrew stia cercando di disinfettare i parametri della riga di comando passati agli strumenti, almeno su ML:

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

Ha funzionato per me modificare la formula come nella risposta di Walty per specificare CFLAGS e CXXFLAGS, ma esegui invece l'installazione con un ambiente standard:

$ brew install --env=std devil

3

Alcune formule hanno un'opzione universale che ti consente di compilare contemporaneamente per i386 e x86_64:

$ brew options sdl
--universal
        Build a universal binary

Il mysql-connector-cnon offre come opzione, ma ho trovato molto facile per aggiungere l'opzione per un'altra formula su cui stavo lavorando: https://github.com/mxcl/homebrew/pull/18713/files

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.