目录

1 /usr/bin/ld: /lib/aarch64-linux-gnu/libcairo.so.2: undefined reference to `FT_Done_MM_Var'

2 /usr/bin/ld: ../../lib/libtaclstream_va.so.1.0.0: undefined reference to `pthread_yield'

参考文献:


1 /usr/bin/ld: /lib/aarch64-linux-gnu/libcairo.so.2: undefined reference to `FT_Done_MM_Var'

某项目中编译代码时报错:

/usr/bin/ld: /lib/aarch64-linux-gnu/libcairo.so.2: undefined reference to `FT_Done_MM_Var'

然后这个错误的原因是我的工程是从其他盒子拷贝过来的,然后这个工程之前所在的盒子系统版本以及gcc版本都比较低,然后工程里面自带的freetype库也是比较老的libfreetype.so.6.14.0,而现在的盒子ubuntu版本、系统一些库的版本、gcc版本都比较高,现在盒子系统里面的freetype库是libfreetype.so.6.18.1。

然后编译链接的时候还是找的这个老的,解决方法就是在系统中搜一下libfreetype.so

然后把系统中的这个库拷贝到自己工程中,编译链接的时候用系统自带的这个库就好了。

2 /usr/bin/ld: ../../lib/libtaclstream_va.so.1.0.0: undefined reference to `pthread_yield'

还是同样的项目,同样的场景,编译还报其他错误

/usr/bin/ld: ../../lib/libtaclstream_va.so.1.0.0: undefined reference to `pthread_yield'

我在代码中搜索pthread_yield,发现他在activemq的源码中,这个错误的解决方法是在这个新的盒子上,用新的gcc,重新编译一个activemq的库就好了。

 

参考文献:

https://www.cnblogs.com/PikapBai/p/15923774.html

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐