如何修复"undefined reference to symbol 'pthread_mutexattr_settype@@GLIBC_2.2.5'"



我运行的是Fedora 29 Linux,我正试图从源代码编译Scribus,使用本页大约2/3的说明。一切都很顺利,直到make进入链接阶段,这时我得到了这个错误:

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

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

Scribus列表还无法解决这个问题,并表示这不是Scribus配置问题,所以我已经走到了死胡同。

如有任何帮助,我们将不胜感激。

问候Doug

我的问题的解决方案很复杂,如果没有我得到的所有帮助,我是不会得到它的。

  • 我有一个podofo的古代版本,我在过去的某个时候编译过。去除那些开始产生影响的东西
  • 我得到了一个dnf命令,以确保安装了所有必要的东西,所以我运行了它,它发现了一些我错过的东西
  • 我在/usr/local中有一个旧的Scribus 1.4.6编译版本,所以我删除了它
  • 我发现这个页面上的命令缺少一点点重要信息。线路:svn-cosvn://scribus.net/trunk/Scribus应为:svn-cosvn://scribus.net/trunk/Scribus代金券155
  • 最重要的是,我有旧版本和新版本的GLIBC,这让我很困惑

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

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

在LinuxMint 上

自年点以来,在构建Scribus后也出现了同样的错误。为什么?

最后,从另一台机器上,我注意到了一个推荐;以下程序包已自动安装,不再需要:

libpodofo0.9.5

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

最终需要执行apt install libpodofo-dev以及移除/usr/local构建。

一切又好了!

最新更新