MAC OSX 中解决编译“'cc' failed with exit status 1”错误 和clang: error: unknown argument 错误

本文详细介绍了如何解决在使用pip安装Python库时遇到的cc失败退出状态1错误,提供了从环境变量设置到具体代码修改的全面解决方案,并通过链接指向了相关社区讨论和解决方案。
部署运行你感兴趣的模型镜像

错误例子:

error: command 'cc' failed with exit status 1
clang: error: unknown argument: '-multiply_definedsuppress' [-Wunused-command-line-argument-hard-error-in-future]
clang: note: this will be a hard error (cannot be downgraded to a warning) in the future

解决方案:

export CFLAGS=-Qunused-arguments
export CPPFLAGS=-Qunused-arguments

sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install zerorpc


http://stackoverflow.com/questions/22697440/cc-failed-with-exit-status-1-error-when-install-python-library

http://bruteforce.gr/bypassing-clang-error-unknown-argument.html

http://kaspermunck.github.io/2014/03/fixing-clang-error/

http://glynjackson.org/weblog/entry/clang-error.html

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### 解决 `ld` 符号未找到错误 对于 `ld: symbol(s) not found for architecture arm64` 错误,通常意味着链接器无法找到特定架构下的某些符号定义。这可能是由于库路径配置不当或者目标平台的兼容性问题。 #### 配置环境变量 确保 `LD_LIBRARY_PATH` 正确设置以包含安装工具包所需的共享库目录。例如,在使用 CUDA 工具链的情况下: ```bash export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} ``` 此命令会将 `/usr/local/cuda-10.1/lib` 添加到现有的 `LD_LIBRARY_PATH` 中[^1]。 #### 修改 CMakeLists.txt 文件 为了使最终可执行文件导出符号并支持 ARM 架构,可以在项目的 `CMakeLists.txt` 文件中加入如下指令来指定链接选项: ```cmake set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-read_only_relocs,suppress") if(APPLE AND ("${CMAKE_OSX_ARCHITECTURES}" MATCHES "arm64")) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -arch arm64") endif() find_program(OBJCOPY_PATH NAMES "llvm-objcopy" "llvm-objcopy-10" "llvm-objcopy-9" "llvm-objcopy-8" "objcopy" PATHS "/usr/local/Cellar/binutils/2.36.1/bin/") ``` 这段代码不仅设置了 `-rdynamic` 参数以便更好地处理动态重定位表中的条目,还特别针对苹果系统的 ARM 架构进行了优化[^3]。 #### 编译器标志调整 如果是在 macOS 上开发,则需要注意 Xcode 的默认行为可能会忽略一些重要的编译参数。因此建议显式地指明目标架构以及启用必要的特性开关,比如通过向项目构建脚本添加额外的编译器标记: ```bash clang++ ... -target aarch64-apple-darwin ... ``` 这样可以强制编译器为目标设备生成正确的二进制格式[^2]。 #### 检查依赖项版本匹配度 确认所有使用的第三方库都已适配至当前的操作系统及其 CPU 架构版本。特别是当涉及到跨平台移植时,不同平台上相同名称的功能实现可能存在差异,从而引发类似的链接失败现象。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值