Homebrewは異なるアーチでビルドしますか?


9

私はmysql-connector-cレシピをhomebrew経由でインストールしようとしましたが、うまくビルドされますが、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では動作しません。変更したbrewスクリプトを参照としてここに貼り付けてもらえますか?どうもありがとう。
Kane

回答:


5

以下を試すことができます:

brew edit mysql-connector-c

次に、「インストール」ブロックで初期化を変更します。

私はこれを試していませんが、あなたはこのようなことをすることになっています:

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

ここで例をチェックするかもしれません:自作の問題、何もインストールできません...


だから私はそこに何を入れますか?CFLAGSの定義?
StasM 2012

与えられたリンクは言う:ENV['CFLAGS']=ENV['CXXFLAGS']="-arch i386"。i386は少し過剰です。
harrymc 2012

動作しているようですが、ライブラリは現在i386です。ありがとうございました!
StasM 2012

@harrymcとStasM、使用しているMacのバージョンは?Mac 10.8.1では動作しません。変更したbrewスクリプトを参照としてここに貼り付けてもらえますか?ありがとう。
Kane

@Kane Mineは10.6.8です。
StasM 2012

5

DevILのインストールで同様の問題が発生しました。Homebrewは、少なくともML上で、ツールに渡されたコマンドラインパラメーターをサニタイズしようとしているようです:

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

Waltyの回答のようにCFLAGSとCXXFLAGSを指定するように式を編集するのに役立ちましたが、代わりに標準環境でインストールを実行します。

$ 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.