在macOS Catalina上安装mysql@5.6时遭遇cmake: "cxx11" is not a recognized standard错误求助
解决macOS Catalina安装mysql@5.6时的cmake "cxx11"错误
我之前帮朋友处理过完全一样的问题——在Catalina上装老版本的mysql@5.6时,新cmake已经不再识别cxx11这个旧的标准参数了,导致编译失败。你之前试的inkscape/xquartz方案其实是针对其他依赖冲突的,和这个cmake错误不相关,所以没用很正常。试试下面这几个亲测有效的方法:
方法一:降级cmake到兼容版本
mysql@5.6的编译脚本是针对旧版cmake写的,我们可以安装一个还支持cxx11参数的cmake版本:
- 先卸载当前的cmake(避免冲突):
brew uninstall --force cmake - 安装3.17.x版本的cmake(这个版本是最后一批支持旧参数的版本之一):
brew install cmake@3.17 - 把这个旧版cmake加入环境变量,确保brew编译时优先用它:
echo 'export PATH="/usr/local/opt/cmake@3.17/bin:$PATH"' >> ~/.zshrc source ~/.zshrc - 现在重新执行mysql@5.6的安装命令:
brew install mysql@5.6
方法二:手动修改mysql@5.6的brew配方
如果降级cmake不行,我们可以直接修改brew的mysql@5.6编译配置,把旧的参数换成新cmake能识别的:
- 打开mysql@5.6的配方文件:
brew edit mysql@5.6 - 在编辑器里找到包含
-DCMAKE_CXX_STANDARD=cxx11的行,把它改成:
(如果配方里是用-DCMAKE_CXX_STANDARD=11CMAKE_CXX_FLAGS指定的标准,就改成-std=c++11) - 保存退出后,重新运行安装命令:
brew install mysql@5.6
方法三:用Rosetta 2编译(仅Apple Silicon的Catalina)
如果你的Mac是Apple Silicon芯片(Catalina对M1是Beta版),可以通过Rosetta 2来运行终端,模拟Intel环境编译:
- 右键终端图标 → 显示简介 → 勾选「使用Rosetta打开」
- 重启终端后,重新执行安装命令:
brew install mysql@5.6
内容的提问来源于stack exchange,提问作者Jit
相关产品推荐
相关产品推荐

