构建最新的Vala版本(使检查失败,valac找不到共享库)

时间:2012-05-09 15:56:25

标签: c gcc build autotools vala

我已经下载了最后两个latest releases of VALA v0.17.0 0.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.0 0.16.0 都被打破了 - 是否有其他人意识到这一点 - 或者我错过了什么?

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

[[更新]]

我已经使0.17.0的构建日志可用here

make check的输出(再次foe v 0.17.0)也可用here

3 个答案:

答案 0 :(得分:3)

make check失败是无关的。一些测试用例依赖于GDBus,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。

答案 1 :(得分:0)

我收到错误:

  加载共享库时出现

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

<强> SO 我这样做了,现在正在工作

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

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

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

答案 2 :(得分:0)

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

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

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

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

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

  

sudo ldconfig / usr / local / lib

添加此库路径