首页 > 解决方案 > 交叉编译:如何在使用 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 不起作用,为什么以及如何解决这个链接问题?

谢谢 。

标签: cmakearmcross-compiling

解决方案


推荐阅读