如何修复“对符号'pthread_mutexattr_settype @@ GLIBC_2.2.5的未定义引用”“

时间:2018-12-05 21:12:51

标签: linker-errors

我运行的是Fedora 29 Linux,我正在尝试使用this页面中约2/3的说明从源代码编译Scribus。一切顺利,直到make进入链接阶段为止,这时出现了这个错误:

  

/ usr / bin / ld:/usr/local/lib/libpodofo.a(PdfFontConfigWrapper.cpp.o):   未定义对符号'pthread_mutexattr_settype @@ GLIBC_2.2.5'的引用

我仔细检查了是否正确安装了fontconfig-devel和podofo-devel。

Scribus列表无法解决这一问题,并表明这不是Scribus配置问题,所以我处于死胡同。

任何帮助都会感激不尽。

道歉,道格

2 个答案:

答案 0 :(得分:1)

解决我的问题的方法很复杂,没有我的所有帮助我就不会解决。

  • 我有一个过去版本的古代版本的podofo。删除开始有所作为;
  • 我得到了dnf命令以确保已安装所有必需的东西,所以我运行了该命令,发现有一些我错过了;
  • 我在/ usr / local中有一个老年人的Scribus 1.4.6编译版本,所以我删除了它;
  • 我发现this页上的命令缺少一些重要信息。该行: svn co svn://scribus.net/trunk/Scribus 应该读: svn co svn://scribus.net/trunk/Scribus scribus155
  • 而且,要想全部解决,我已经老了,还有新版本的GLIBC,这使事情变得混乱。

在纠正所有这些问题之后,cmake,make和make install顺利进行了。我要做的就是创建一个菜单项,并为其分配正确的Scribus徽标,现在我可以按照期望的方式运行Scribus。

非常感谢大家的帮助。我喜欢互联网。

答案 1 :(得分:0)

在LinuxMint上

从年份点开始构建Scribus之后,遇到了相同的错误。为什么?

最终,我从另一台机器上发现了一个建议; 以下软件包已自动安装,不再需要:

  

libpodofo0.9.5

所以我已经自动删除了它,这导致cmake告诉我,没有podofo导致我构建了/usr/local,然后出现了错误。

最终需要执行apt install libpodofo-dev并删除/usr/local构建。

一切都很好!