Homebrew 使用不同的拱形构建?

Sta*_*asM 10 mac homebrew macos

我尝试通过自制软件安装 mysql-connector-c 配方,它构建得很好,但会生成 x86_64 库:

  $file ~/brew/lib/libmysql.dylib 
  .../brew/lib/libmysql.dylib: Mach-O 64-bit dynamically linked shared library x86_64
Run Code Online (Sandbox Code Playgroud)

但是,我的项目需要 i386 库。我试图给它 CFLAGS 和 LDFLAGS 像这样:

  CFLAGS="-arch i386 -arch x86_64" LDFLAGS="-arch i386 -arch x86_64" brew install mysql-connector-c
Run Code Online (Sandbox Code Playgroud)

但没有任何变化 - 它仍然只构建 x86_64 二进制文件。有没有办法让自制程序构建双拱库或 i386 库?如果重要的话,我将内核架构设置为 x86_64。

Wal*_*ung 6

您可以尝试以下操作:

brew edit mysql-connector-c
Run Code Online (Sandbox Code Playgroud)

然后修改“安装”块中的初始化。

虽然我没有尝试过,但你应该做这样的事情:

ENV['CFLAGS']='xxx'
ENV['LDFLAGS']='xxx'
Run Code Online (Sandbox Code Playgroud)

您可以在此处查看示例:自制软件问题,无法安装任何东西...


小智 5

安装 DevIL 时遇到类似问题。看来 Homebrew 正在尝试清理传递给工具的命令行参数,至少在 ML 上是这样:

$ brew install -v devil
...
brew: superenv removed: -arch i386
...
Run Code Online (Sandbox Code Playgroud)

我可以像在 Walty 的回答中那样编辑公式以指定 CFLAGS 和 CXXFLAGS,但使用标准环境运行安装:

$ brew install --env=std devil
Run Code Online (Sandbox Code Playgroud)