自制酒用不同的拱形建造?


9

我试图通过自制软件安装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。


您正在使用哪个版本的Mac?我无法使其在Mac 10.8.1上运行。您可以在此处粘贴修改后的brew脚本作为参考吗?非常感谢。
凯恩

Answers:


5

您可以尝试以下方法:

brew edit mysql-connector-c

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

尽管我没有尝试过,但您应该执行以下操作:

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

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


那我该放什么呢?CFLAGS定义?
StasM 2012年

给定的链接说:ENV['CFLAGS']=ENV['CXXFLAGS']="-arch i386"。i386有点过多。
harrymc'9

似乎正在工作,该库现在是i386。谢谢!
StasM 2012年

@harrymc和StasM,您使用的是哪个版本的Mac?我无法使其在Mac 10.8.1上运行。您可以在此处粘贴修改后的brew脚本作为参考吗?谢谢。
凯恩

@Kane Mine是10.6.8。
StasM 2012年

5

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

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

它像我在Walty的答案中一样编辑公式以指定CFLAGS和CXXFLAGS,但对我来说却很有效,但是可以使用标准环境运行install:

$ 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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.