Ubuntu交叉编译:sysroot中应安装主机还是目标版依赖库?
Ubuntu 20.04 交叉编译ARM64应用依赖库问题解答
你的核心思路完全正确:必须将依赖库安装到交叉编译器的sysroot目录下,这样交叉编译工具链才能正确找到头文件和库文件,避免误用到主机系统的x86_64库。
依赖库的选择:必须用针对ARM64架构构建的版本,绝对不能用主机Ubuntu(x86_64)自带的库。因为主机的库是为x86指令集编译的,和ARM64指令集不兼容,交叉链接器无法将其与你的ARM64应用代码链接,轻则链接报错,重则生成的程序在ARM64设备上直接崩溃。
交叉链接器的作用:它就是专门用来链接ARM64目标二进制文件的。会识别ARM64的目标文件格式,将你的ARM64应用代码和依赖的ARM64库文件链接成完整的、可在ARM64设备上运行的可执行程序。
额外实操提示:编译grpc这类依赖库时,要指定交叉编译工具链(比如设置CC=aarch64-linux-gnu-gcc、CXX=aarch64-linux-gnu-g++),并将安装路径设置为交叉编译器的sysroot目录(通常是/usr/aarch64-linux-gnu/),确保库文件被安装到正确位置。
内容的提问来源于stack exchange,提问作者TS_
相关产品推荐
相关产品推荐

