web-dev-qa-db-ja.com

別のアーチで自作ビルド?

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のみのバイナリをビルドします。自作にデュアルArchライブラリまたはi386ライブラリのいずれかをビルドさせる方法はありますか?重要な場合は、カーネルアーキテクチャをx86_64に設定しています。

9
StasM

次のことを試すことができます。

brew edit mysql-connector-c

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

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

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

ここで例を確認してください: 自作の問題、何もインストールできません...

5
Walty Yeung

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

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

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

$ brew install --env=std devil
5
qiller

一部の数式には、i386とx86_64の両方を同時にコンパイルできるユニバーサルオプションがあります。

$ brew options sdl
--universal
        Build a universal binary

mysql-connector-cはオプションとして提供していませんが、作業中の別の数式にオプションを追加するのは非常に簡単でした: https://github.com/mxcl/homebrew/pull/18713/files

3
drewish