问题:嵌入式开发,交叉编译后的程序放到开发板上发现,version `GLIBC_2.34‘ not found”。
原因分析:主要交叉编译是使用的glibc库和实际板子上使用的库不一致导致的。
版本检查:在编译环境和开发板上分别检查库的版本:命令如下:
strings /lib/x86_64-linux-gnu/libc.so.6 |grep GLIBC_
解决办法:在交叉编译的Makefile中加入静态编译即可,也就是把库编译到程序中,Makefile中加入-static关键字,使用静态链接。因为默认的都是动态链接,所以会识别出版本不同的问题。
亲测有效。