首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cmake,scribus -列出所有必需的库

cmake,scribus -列出所有必需的库
EN

Stack Overflow用户
提问于 2022-05-21 09:30:41
回答 1查看 80关注 0票数 0

我试图从Ubuntu20.04的源代码构建Scribus (1.5.8和1.7)。它使用cmake作为它的构建系统。我对cmake没有经验。

有没有办法从cmake或任何命令行工具中获取所有必需和/或可选库的列表?

现在,我的“工作流程”如下:

libraries.

  • Run

  • 在源目录中运行cmake .。如果失败,则转到3。否则,转到7.

  • 搜索错误消息,以查找(希望)正确的库。

H 113运行apt install以安装(希望)正确的

这是非常乏味的。我希望有一些东西,只是生成一个库的列表,cmake将寻找。理想情况下,可以简单地将此列表提供给apt install以获取所有库。

尽管scribus开发人员在他们的wiki中提供了所需库的列表,但这些列表似乎并不是详尽无遗的,也不是最新的。

我尝试使用cmake --graphviz=foo.dot,但是只有在cmake .成功运行之后,它才会生成任何输出。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-21 10:44:04

是否有办法从cmake或任何命令行工具中获取所有必需和/或可选库的列表?

不是用自动化的方式。一般来说,这是不可能的。在CMake代码之外,可能存在依赖项而不是由CMake管理的依赖项,可能存在依赖项的依赖项,以及许多角的情况。此外,“库名”和“项目名”之间没有明确的映射(我指的是.so、.a或.h文件与实际项目之间的映射)。

通常,编译库需要(手动)有关该库和库依赖项的知识。这正是发行版中包维护人员所做的工作--他们编译库并列出包管理器的所有库依赖项。尽管出现了越来越聪明的“构建系统”,但这并不是一个灵丹妙药,而且C++生态系统过于多样化。

但是可以肯定的是--谷歌scribus,找到源代码https://github.com/scribusproject/scribus,检查文档,找到项目https://github.com/scribusproject/scribus/blob/master/BUILDING的依赖关系,都列出了如下内容:

代码语言:javascript
复制
Requirements:
    Qt >= 6.2
    Freetype >= 2.1.7 (2.3.x strongly recommended)
    cairo >= 1.14.x
    harfbuzz = > 0.9.42
    libicu
    libjpeg (depending on how Qt is packaged)
    libpng >= 1.6.0
    libtiff >= 3.6.0
    libxml2 >= 2.6.0
    LittleCMS (liblcms) >= 2.0 (2.1+ recommended)
    poppler and poppler-cpp >= 0.62.0
    hunspell
    Python >= 3.6

Recommended:
    CUPS
    Fontconfig >= 2.0
    GhostScript >= 8.0 (9.0+ or greater preferred)
    tkinter for the font sampler script
    python-imaging for the font sampler preview
    pkgconfig (to assist finding other libraries)
    podofo - 0.7.0+ for enhanced Illustrator AI/EPS import, svn versions
    boost and boost-devel

构建系统仍然是一条巨大的道路--使用cmake .,库维护人员可以为用户显示一条奇特的错误消息-- "Och - install libpng, it was not found",这一切都让人愉快。它仍然比从编译器或链接器获取-lpng: not found消息要好得多。例如,您可以编写一个CMake配置,列出所有这样的消息,以及稍后的错误,这样用户就可以看到所有这些消息。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72328292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档