Manjaro安装配置踩坑

MacOS制作启动盘

Mac 制作 Linux 启动盘

mac os x 下查看dd命令刻录U盘的进度

Manjaro 21.05 安装和配置

ArchLinux官网:https://archlinux.org/

Ubuntu 18.04 安装和配置

Ubuntu 18.04 安装和配置

源码阅读利器:UnderStand安装与踩坑

1)Understand用法及Linux安装指南

2)Understand在Manjaro上运行报错的解决

根据上述的Understand官网上的Linux安装指南,在Ubuntu 20.04上可以正常运行,但在Manjaro 21.05上出现如下错误:

./understand 时报错:

./understand: symbol lookup error: /usr/lib/libfontconfig.so.1: undefined symbol: FT_Done_MM_Var

为此我作出以下调研和尝试:

  1. 其他软件的相似问题和解决方式:
  1. Linux使用动态库时的undefined symbol问题:
  1. LinuxQuestions上的相似问题:

从这些链接中我学到Linux使用动态库时需注意的问题和很多有用的Linux命令(如lddnmgrep 等),同时也发现自己对make的过程,Makefile的编写等还不熟悉,希望后面将这块知识补上。

在调试的过程中我尝试了上述链接中的方法,但manjaro的/usr/lib/libfreetype.solibfontconfig.so都存在,/usr/lib/libfontconfig.so依赖于/usr/liblib/freetype.so,且FT_Done_MM_Var 也在libfreetype.so 中定义了。而Understand的源码和makefile文件无法找到,因此不能通过修改编译过程解决。已知Understand在Ubuntu 18.04上可以正常运行,而Manjaro 21.05与Ubuntu的唯一区别在于Manjaro的Linux系统版本是5.10,而Ubuntu的系统版本是5.8,两系统中libfontconfig的版本一致(都是libfontconfig.so.1.12.0,而libfreetype的版本不同(Manjaro是libfreetype.so.6.17.4,Ubuntu是libfreetype.so.6.17.1),因此可能的问题应该与第一个链接(Tecplot运行报错)相似,需要降低Linux系统版本

Manjaro换内核的帖子(链接),尝试无果。

最后,将understand安装目录中/bin/linux64 下的 libfreetype.so.6 删除,运行成功!

反向思考错误原因,应该是/bin/linux/libfreetype.so 版本低,没有定义FT_Done_MM_Var,使用/bin/linux/libfreetype.so 时会加载系统的/usr/lib/libfontconfig.so.1 动态库。该动态库依赖的是版本较高的/usr/lib/libfreetype.so,而后者因为相同的库已存在所以没有加载,至此问题解决。

Linux命令学习与积累

MapReduce论文及MIT相关实验总结
You need to set install_url to use ShareThis. Please set it in _config.yml.

Kommentare

You forgot to set the shortname for Disqus. Please set it in _config.yml.
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×