MacOS Big Sur下配置libcvd出现C编译器无法生成可执行文件如何解决
问题根因
你遇到的报错由两个核心问题导致:
- 2010版的libcvd配置脚本默认寻找gcc-4.2编译器,该编译器早已在MacOS High Sierra之后的系统版本中移除,你当前的Big Sur 11.1系统不存在该路径
- 配置脚本默认指定了早已废弃的MacOSX10.5 SDK、强制编译32位程序,而MacOS Catalina及之后的系统已经完全不支持32位程序运行和编译
解决步骤
- 先验证当前系统的开发工具路径有效性,执行以下命令确认无报错:
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
执行后输入密码确认即可,该命令会将XCode的开发工具路径设置为当前活动版本。
- 执行以下命令手动指定编译参数,覆盖旧配置脚本的默认值:
./configure CC=clang CXX=clang++ \ --host=x86_64-apple-darwin \ --build=x86_64-apple-darwin \ CFLAGS="-arch x86_64 -isysroot $(xcrun --show-sdk-path) -mmacosx-version-min=11.1" \ CXXFLAGS="-arch x86_64 -isysroot $(xcrun --show-sdk-path) -mmacosx-version-min=11.1" \ LDFLAGS="-arch x86_64 -isysroot $(xcrun --show-sdk-path) -mmacosx-version-min=11.1"
上述参数的作用为:指定使用XCode自带的clang作为C/C++编译器,强制编译x86_64架构的64位程序,调用当前系统匹配的SDK,指定最低兼容版本为你当前使用的Big Sur 11.1。
补充说明
PTAMM和2010版libcvd均为多年未更新的老旧项目,完成配置后编译阶段仍可能出现其他语法、接口不兼容问题,如遇报错可优先尝试下载更新版本的libcvd源码,新版本已适配MacOS新系统和clang编译器。
内容的提问来源于stack exchange,提问作者zachwalker243
相关产品推荐
相关产品推荐

