我尝试通过 homebrew 安装 mysql-connector-c 配方,并且它构建得很好,但产生了 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。
答案1
您可以尝试以下方法:
brew edit mysql-connector-c
然后修改“安装”块中的初始化。
虽然我没有尝试过,但你应该做这样的事情:
ENV['CFLAGS']='xxx'
ENV['LDFLAGS']='xxx'
您可以查看此处的示例:自制软件出现问题,无法安装任何东西......
答案2
安装 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