Apple M1 Pro运行configure脚本遇C++预processor sanity check失败问题
解决macOS Ventura 13.5.2(M1 Pro)下ViennaRNA-2.6.3 configure预处理器检查失败问题
针对你遇到的configure: error: C++ preprocessor "/lib/cpp" fails sanity check错误,结合config.log里的clang参数不兼容、头文件缺失问题,按以下步骤解决:
第一步:确保Xcode Command Line Tools完整配置
运行以下命令修复可能损坏的工具链:xcode-select --install sudo xcode-select --reset验证SDK路径是否正确:
xcrun --show-sdk-path正常输出应为
/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk,如果路径不存在,重新安装Command Line Tools。第二步:用环境变量强制指定clang工具链,避免gcc参数冲突
不要手动修改configure脚本,直接在运行configure前设置以下环境变量:export CPP="clang-cpp" export CC="clang" export CXX="clang++" export CFLAGS="-isysroot $(xcrun --show-sdk-path)" export CXXFLAGS="-isysroot $(xcrun --show-sdk-path)"说明:
- 用clang自带的预处理器
clang-cpp替代默认的/lib/cpp,解决预处理器路径错误 - 强制使用clang/clang++编译,避免configure脚本调用gcc的
-V等不兼容参数 - 通过
-isysroot指定SDK路径,修复limits.h、stdlib.h等系统头文件找不到的问题
- 用clang自带的预处理器
第三步:重新运行configure
建议加上--prefix参数指定安装路径,方便后续管理:./configure --prefix=/usr/local/ViennaRNA-2.6.3若仍有头文件缺失问题
如果config.log显示特定头文件找不到,可在CFLAGS/CXXFLAGS中手动添加头文件目录:export CFLAGS="-isysroot $(xcrun --show-sdk-path) -I$(xcrun --show-sdk-path)/usr/include" export CXXFLAGS="-isysroot $(xcrun --show-sdk-path) -I$(xcrun --show-sdk-path)/usr/include"再重新运行configure即可。
内容的提问来源于stack exchange,提问作者Pedram
相关产品推荐
相关产品推荐

