cmake - 交叉编译:如何在使用 cmake 时设置链接器?
问题描述
我在 debian 上交叉编译一个 C 项目。
我已经安装了 gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf 并设置了 PATH OK 。
我在源文件夹中添加了两个文件:
arm_linux.bashrc:
出口 ARCH=arm
导出 CROSS_COMPILE=arm-linux-gnueabihf-
构建.sh:
#!/bin/bash
设置 -v 开启
源 arm_linux.bashrc
rm -r -f 构建
mkdir 构建
光盘构建
CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ AR=arm-linux-gnueabihf-ar LD=arm-linux-gnueabihf-ld cmake -DMAKE_TOOLCHAIN_FILE=arm-linux.cmake ..
使-j4
当我运行 ./build.sh
编译顺利,
但链接报错:
[100%]链接c可执行项目
/usr/bin/ld: 搜索 -lxxxlib 时跳过不兼容的 /project_path/lib/libxxx.so。
/usr/bin/ld:跳过查找-lxxxlib。
......
collect2:error: ld 返回 1 个退出状态
……
似乎 arm-linux-gnueabihf-ld 不起作用,为什么以及如何解决这个链接问题?
谢谢 。
解决方案
推荐阅读
- ray-tune - 如何在光线调谐中获得最佳迭代次数
- javascript - 通过相同的 html 按钮在 Node js 中包含两个 https 请求
- javascript - 如何在供应商之间平均分配时间段,剩余时间
- node.js - 查找一个对象后,Mongoose 在一个集合中聚合合并数据
- php - 在准备好的语句中处理空变量
- jinja2 - jinja2:如何在方括号之间打印变量
- reactjs - 在 React 中渲染复杂的降价
- typescript - 是否可以键入不是箭头函数的 TS 类方法?
- perl - 如何在 foreach 循环中使用“_”下划线来构建范围
- django - 加载 psycopg2 模块时出错:未加载库:libpq.5.dylib