真机file was built for archive which is not the architecture being linked (armv7s)

     

真机运行出现 file was built for archive which is not the architecture being linked (armv7s) 报错

 

解决方法:

找到项目的Build Settings- > Build Active Architecture Only,将其从NO 设为 YES

### 关于 ELF 加载器文件不可用的解决方案 当遇到 `ELF loader file not available` 的问题时,通常意味着系统无法找到或加载所需的动态链接库或其他依赖项。以下是可能的原因以及对应的解决方法: #### 1. 动态链接库路径配置错误 如果可执行文件需要从特定目录(如 `/system/lib/asanfolder`[^1])加载共享库,则需确认这些库已正确安装并位于系统的标准搜索路径中。 可以通过设置环境变量 `LD_LIBRARY_PATH` 来指定额外的库搜索路径: ```bash export LD_LIBRARY_PATH=/system/lib/asanfolder:$LD_LIBRARY_PATH ``` 此操作会临时修改当前 shell 会话中的库查找路径。为了永久生效,可以将其添加到 `.bashrc` 或其他启动脚本中。 #### 2. 使用 `ldd` 命令诊断缺失的依赖项 通过运行以下命令检查目标二进制文件的实际依赖关系及其状态: ```bash ldd /path/to/executable ``` 这将显示所有必要的共享对象及其解析位置。如果有任何未满足的需求,它们将以消息形式呈现出来,例如 `"not found"`。此时应确保相应版本的库已被正确部署至适当的位置[^2]。 #### 3. 验证文件类型与架构匹配度 利用 `file` 工具验证目标程序是否为预期平台上的有效 ELF 可执行文件: ```bash file /path/to/executable ``` 理想情况下,输出应该类似于下面这样描述了一个适合本地硬件结构的标准 Linux 应用程序实例: ``` /path/to/executable: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.x.y.z, BuildID[sha1]=abcdefg0123456789hijklmnopqrstuvwxy, stripped ``` 如果不一致或者存在冲突则表明下载过程中损坏或者是跨平台移植失败等问题所致。 #### 4. 调整 UCI 配置以支持自定义加载逻辑 对于某些嵌入式设备而言,其初始化流程可能会涉及读取存储在 `/etc/config/*` 下面的各种设定参数来决定如何运作。假如涉及到调整默认行为的话那么就需要编辑对应的部分并通过调用 `config_load()` 函数实现重新加载新的选项集[^3]: ```c #include <uci.h> struct uci_context *ctx; if ((ctx = uci_alloc_context()) != NULL){ struct uci_package *p; if (!uci_load(ctx,"custom", &p)){ printf("Loaded custom configuration successfully.\n"); }else{ perror("Failed to load package 'custom'"); } } ``` 以上代码片段展示了怎样借助 libuci API 手动获取名为 "custom" 的包内容以便进一步处理其中的数据字段值等等。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值