我们正在 OS X Yosemite 10.10 上构建一个大型 C++ 应用程序。此应用程序依赖于我们在构建应用程序之前使用 Homebrew 安装的许多第三方库。我们的发布脚本会获取所有依赖项并将其包含在最终包中。
我们的一些用户报告说我们的应用程序无法在他们的 Mac 上运行。例如,在 2012 年末的 27 英寸 iMac 上运行 macOS 10.12.6 的用户收到llegal instruction: 4
(所有详细信息这里)。
看起来崩溃发生在我们捆绑的第三方依赖项之一 OpenImageIO 中,它是使用以下命令安装在构建机器上的:
brew tap homebrew/science
brew install openimageio
brew info openimageio
报告称它确实是从源代码构建的:
/usr/local/Cellar/openimageio/1.7.17_1 (66 files, 16.0MB) *
Built from source on 2017-11-27 at 19:15:19
我怀疑 Homebrew 在构建机器上进行编译时启用了高级 x86 指令集。
以下是 OpenImageIO 的 Homebrew 公式:
https://github.com/Homebrew/homebrew-science/blob/master/openimageio.rb
有没有办法找出 Homebrew 正在使用哪些标志或哪些命令行?
或者,有没有办法在 macOS 上全局设置 clang 的默认标志?