【问题标题】:Unable to build static lib of mesa (libGL.a)无法构建台面的静态库(libGL.a)
【发布时间】:2019-11-04 17:17:18
【问题描述】:

尝试构建 libGL 的静态库。查看“介子配置”,它指出静态库是默认的。不过,我最终只得到了一个 libGL.so 文件。是否有任何魔法巫术可以让静态版本编译?我在网上找到的唯一答案是针对仍然使用标准“./configure; make”的旧版台面

【问题讨论】:

  • 试试这个:转到src/glx/meson.build to line 161 并将shared_library 更改为static_library。但如果它不起作用,您会在此处列出所有依赖项,因此您必须提取 .a 档案并将它们一起打包到 libGL.a
  • @KamilCuk 成功了!谢谢!我想知道为什么没有标准参数可以做到这一点?手动编辑构建文件似乎很奇怪。
  • 嗯,嗯,在configure 脚本中,您使用命令行指定了(许多)选项。我相信他们可以手动编写脚本并添加if (BUILD_GL_AS_STATIC_LIBRARY),但现在构建过程变得更加复杂和复杂。配置脚本对于一个项目来说很好,但目前人们处理许多项目、子项目和子项目都链接在一起......所以我认为这就是为什么编辑适当项目的构建文件而不是指定数千个选项更容易的原因命令行。
  • 我认为shared_library的使用是错误的。它应该使用library,它允许用户控制使用-Ddefault_library=static-Ddefault_library=both 构建的内容。我已经修复了上游 in gtkat-spi2-atk 的类似问题。
  • @nh2 然后您可能还想更改默认情况下构建静态库的帮助输出,显然不是这样:)

标签: gcc xorg mesa meson-build


【解决方案1】:

要将 libGL 编译为静态库,请将 src/glx/meson.build 中的行 161shared_library 更改为 static_library

【讨论】:

    猜你喜欢
    • 2015-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-04
    • 1970-01-01
    • 1970-01-01
    • 2011-08-09
    • 1970-01-01
    相关资源
    最近更新 更多