M1芯片Mac使用Homebrew安装QuantLib时configure配置报错求助
优先方案:直接使用Homebrew安装预编译包
无需手动处理编译配置,执行以下命令即可完成安装:brew install quantlib
安装完成后在XCode项目中做如下配置即可调用:
- 头文件搜索路径添加
/opt/homebrew/include - 库文件搜索路径添加
/opt/homebrew/lib - 链接器标志添加
-lQuantLib
手动源码编译解决方案
错误原因
当前报错是configure脚本参数解析错位导致,通常是换行转义符\后存在多余空格,导致脚本误将路径参数识别为架构参数。
调整后的配置命令
直接将命令合并为一行避免转义错误,prefix参数无需特殊调整,保留/opt/homebrew即可:./configure --with-boost-include=/opt/homebrew/include/ --with-boost-lib=/opt/homebrew/lib/ --prefix=/opt/homebrew/ CXXFLAGS='-O2 -std=c++11 -stdlib=libc++ -mmacosx-version-min=11.4' LDFLAGS='-stdlib=libc++ -mmacosx-version-min=11.4'
如果仍存在架构相关报错,可在命令末尾补充架构声明参数:./configure --with-boost-include=/opt/homebrew/include/ --with-boost-lib=/opt/homebrew/lib/ --prefix=/opt/homebrew/ CXXFLAGS='-O2 -std=c++11 -stdlib=libc++ -mmacosx-version-min=11.4' LDFLAGS='-stdlib=libc++ -mmacosx-version-min=11.4' --host=arm64-apple-darwin
如果不想使用系统级路径,可将prefix修改为个人目录路径,避免权限问题,例如:./configure --with-boost-include=/opt/homebrew/include/ --with-boost-lib=/opt/homebrew/lib/ --prefix=~/quantlib CXXFLAGS='-O2 -std=c++11 -stdlib=libc++ -mmacosx-version-min=11.4' LDFLAGS='-stdlib=libc++ -mmacosx-version-min=11.4'
后续XCode配置时对应将头文件、库路径修改为~/quantlib/include和~/quantlib/lib即可。
后续安装步骤
配置执行成功后依次执行以下命令完成编译安装:
make -j8(数字可替换为你的CPU核心数,加快编译速度)make install
内容的提问来源于stack exchange,提问作者leo

