0

在 Arch Linux 上,升级到 Gnome 3.14 后,我在使用 Webkit2Gtk 时遇到了一些问题。

Vala: 考虑以下 vala 测试:

using Gtk;
using WebKit;

public class ValaWebkit : Window {

    private WebView web_view;

    public ValaWebkit(){
        this.title = "Testing youtube";
        set_default_size (800, 600);

        web_view = new WebView();
        add(web_view);

        //this.web_view.open ("http://www.youtube.com/");
        this.web_view.load_uri ("https://www.youtube.com/");
    }

    public static int main (string[] args) {
        Gtk.init (ref args);

        new ValaWebkit().show_all();
        Gtk.main();

        return 0;
    }
}

在升级到 Gnome 3.14 之前,我可以这样编译valac --pkg gtk+-3.0 --pkg webkit2gtk-3.0 --vapidir . valawebkit.vala(我没有在这里粘贴 webkit2gtk-3.0.vapi,因为它太长了)。现在使用 gnome 3.14 如果我尝试编译我得到

/home/luca/Sources/vala/webkit test/valawebkit.vala.c:8:29: fatal error: webkit2/webkit2.h: No such file or directory
 #include <webkit2/webkit2.h>
                             ^
compilation terminated.
error: cc exited with status 256
Compilation failed: 1 error(s), 0 warning(s)

此外,如果我尝试运行在升级到 Gnome 3.14 之前编译的二进制文件,我会收到以下错误:

./valawebkit: error while loading shared libraries: libwebkit2gtk-3.0.so.25: cannot open shared object file: No such file or directory

2) GJS / Eclipse / Java (SWT):如果我运行这个 gjs 示例或 eclipse (luna) 或任何其他基于 swt 4.4 的应用程序,我会得到以下信息:

No bp log location saved, using default.
[000:000] Cpu: 6.58.9, x4, 2600Mhz, 7847MB
[000:000] Computer model: Not available
[000:000] Browser XEmbed support present: 1
[000:000] Browser toolkit is Gtk2.
[000:004] Using Gtk2 toolkit
[000:004] Warning(optionsfile.cc:47): Load: Could not open file, err=2
[000:004] No bp log location saved, using default.

我感觉这是 ArchLinux 和 Gnome 3.14 上的一种打包问题。有没有人有同样的问题?是否有针对 webkit2gtk 编译和运行的解决方法?

编辑 我取得了一点进展:我发现我需要的头文件现在位于/usr/include/webkitgtk3.0/usr/include/libsoup-2.4. 现在,像这样编译:

valac --pkg gtk+-3.0 --pkg webkit2gtk-3.0 --vapidir . --Xcc="-I/usr/include/webkitgtk-3.0" --Xcc "-I/usr/include/libsoup-2.4" --thread valawebkit.vala

有效,但在链接器上仍然失败:

/tmp/ccQGhB3b.o: In function `vala_webkit_construct':
valawebkit.vala.c:(.text+0x6e): undefined reference to `webkit_web_view_new'
valawebkit.vala.c:(.text+0x101): undefined reference to `webkit_web_view_load_uri'
collect2: error: ld returned 1 exit status
error: cc exited with status 256
Compilation failed: 1 error(s), 0 warning(s)
4

2 回答 2

1

您必须指定--Xcc标志的事实表明您缺少 WebKit 的 pkgconfig 文件。应该有一个webkit2gtk-3.0.pcin /usr/lib/pkgconfig。Arch 软件包webkit2gtk有一个名为webkit2gtk-4.0.pc. 因此,如果您重命名您的 VAPI 文件,则应该可以正确链接。

于 2014-10-29T10:18:01.730 回答
0

实际上使用 webkit2gtk-4.0 我不再需要提供 vapi 文件了。所以我可以删除我的 webkit2gtk-4.0.vapi 并像这样编译(甚至更简单):

valac --pkg gtk+-3.0 --pkg webkit2gtk-4.0 --thread valawebkit.vala
于 2014-10-29T10:19:14.370 回答