【问题标题】:Building latest Vala releases (make check fails and valac can't find shared lib)构建最新的 Vala 版本(make check 失败并且 valac 找不到共享库)
【发布时间】:2014-02-18 01:10:15
【问题描述】:

我已经下载了最后两个 latest releases of VALAv0.17.00.16.0)并尝试在我的开发机器上构建(Ubuntu 10.0.4 和gcc 4.4.3)。

当我构建 v 0.17.0 时,我注意到屏幕上闪现了一些错误。我运行 make checkmake test 都失败了(cc 错误)。

使用 v 0.17.0,当我运行 valac 时出现以下错误:

valac:加载共享库时出错:libval​​a-0.18.so.0:不能 打开共享对象文件:没有这样的文件或目录

请注意共享库的不同版本号(这是错误吗?)。无论如何,我搜索了我的整个系统以查看该文件是否是在我系统的其他地方创建的。找不到文件。

然后我下载了 v 0.16.0 并构建了它。 make checkmake test 也再次失败。但是这次当我启动 valac 可执行文件时,我得到了这个错误:

valac:加载共享库时出错:libval​​a-0.16.so.0:不能 打开共享对象文件:没有这样的文件或目录

请注意,shlib low 具有正确的版本号。我满怀希望,然后我在我的机器上搜索了 shlib:

someone@yourbox:~/work/dev/c++/3rdparty/vala/vala-0.16.0$ find . -name 'libvala*' -type f 2>/dev/null
./codegen/libvala-0.16.la
./codegen/.libs/libvala-0.16.lai
./codegen/.libs/libvala-0.16.so.0.0.0
./libvala.pc
./libvala.pc.in
./vapi/libvala-0.16.vapi
./ccode/libvalaccode.la
./ccode/.libs/libvalaccode.a
./libvala-0.16.pc
./vala/.libs/libvalacore.a
./vala/libvalacore.la

我正要创建一个指向共享库的符号链接,并将其放在路径中以便 valac 可以找到它 - 直到我意识到我不应该这样做(make install 应该已经这样做了) .

这让我相信 v 0.17.00.16.0 都坏了 - 有其他人知道这一点 - 还是我错过了什么? p>

有没有人设法获得任何最新版本来构建 - 我需要什么来修复构建? (否则,vala 的最后一个稳定版本是什么?

[[更新]]

我已将 0.17.0 的构建日志提供给 here

make check 的输出(同样是 foe v 0.17.0)也可用here

【问题讨论】:

  • 我不知道任何人有类似的问题,也无法从您发布的内容中判断出了什么问题。请发布完整的构建日志。
  • @nemequ:我已经上传了构建日志,并从运行make check 到 patebin。请参阅我更新的问题以获取链接。谢谢。

标签: c gcc build autotools vala


【解决方案1】:

make check 失败是无关的。部分测试用例依赖于 GDBus,仅在 2.26 版本中添加到 GIO,根据http://packages.ubuntu.com/lucid/libglib2.0-0 Ubuntu 10.04 有 2.24。

你看到的0.18是API/ABI版本,是正确的。奇数次要版本是不稳定的,并带有下一个稳定版本的 API/ABI 版本(将 0.17.x 版本视为最终将成为 0.18 稳定系列的不稳定开发版本)。

至于找不到库,根据您安装的前缀,您可能只需要运行ldconfig。 AFAIK 不再需要此步骤(运行 Ubuntu 的人必须确认这一点),但 10.04 是很久以前...

如果您没有安装到标准位置,您可能需要相应地调整您的 LD_LIBRARY_PATH。

【讨论】:

  • 谢谢。一旦我了解发生了什么,我就设法解决了这些问题。
【解决方案2】:

参考: https://help.ubuntu.com/community/Vala

如果您使用 sudo make install ,当您发出第一个 valac 命令时,您可能会收到以下错误消息

valac:加载共享库时出错:libval​​a.so.0:无法打开共享对象文件:没有这样的文件或目录

这意味着编译器找不到这些库,但它们正是它们应该在的位置,即目录 /usr/local/lib。要在编译时纠正错误,您将运行命令 sudo ldconfig 将链接器更新为动态库。

所以你可以运行这个命令:

sudo ldconfig /usr/local/lib

添加这个库路径

【讨论】:

    【解决方案3】:

    我出错了:

    加载共享库时出错:libval​​a-0.18.so.0:无法打开 共享对象文件:没有这样的文件或目录

    所以 我这样做了,现在正在工作

    sudo apt-get install build-essential flex bison libglib2.0-dev

    sudo apt-get install checkinstall devhelp libgtk2.0-dev

    还有那一套,现在一切都很好.. 希望能帮到你

    【讨论】:

      猜你喜欢
      • 2018-02-12
      • 2021-11-23
      • 2014-06-23
      • 2022-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-18
      • 1970-01-01
      相关资源
      最近更新 更多