首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >致命错误: webkit2/webkit2.h:没有这样的文件或目录

致命错误: webkit2/webkit2.h:没有这样的文件或目录
EN

Stack Overflow用户
提问于 2014-10-29 08:30:55
回答 2查看 2K关注 0票数 0

在Arch上,在升级到Gnome3.14之后,我在Webkit2Gtk上遇到了一些问题。

vala :考虑下面的vala测试:

代码语言:javascript
复制
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;
    }
}

在升级到Gnome3.14之前,我可以像这个valac --pkg gtk+-3.0 --pkg webkit2gtk-3.0 --vapidir . valawebkit.vala一样复制(我不会在这里粘贴webkit2gtk-3.0.spi,因为它太长了)。现在使用gnome 3.14,如果我试图编译,就会得到

代码语言:javascript
复制
/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之前编译的二进制文件,就会得到以下错误:

代码语言:javascript
复制
./valawebkit: error while loading shared libraries: libwebkit2gtk-3.0.so.25: cannot open shared object file: No such file or directory

2) GJS / Eclipse ( swt ):如果我运行这个gjs示例、eclipse (露娜)或任何其他基于swt4.4的应用程序,我会得到以下信息:

代码语言:javascript
复制
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下面。现在,像这样编译:

代码语言:javascript
复制
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

工作,但它在链接器上失败:

代码语言:javascript
复制
/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)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-29 10:19:14

实际上,在webkit2gtk-4.0中,我不再需要提供vapi文件了。因此,我可以删除我的webkit2gtk-4.0.evi和这样的简单(更简单):

代码语言:javascript
复制
valac --pkg gtk+-3.0 --pkg webkit2gtk-4.0 --thread valawebkit.vala
票数 0
EN

Stack Overflow用户

发布于 2014-10-29 10:18:01

事实上,您必须指定--Xcc标志,这意味着您丢失了WebKit的pkgconfig文件。在webkit2gtk-3.0.pc中应该有一个/usr/lib/pkgconfig。Arch包webkit2gtk有一个名为webkit2gtk-4.0.pc的pkgconfig文件。因此,如果您重命名您的VAPI文件,这应该是正确的链接。

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

https://stackoverflow.com/questions/26625752

复制
相关文章

相似问题

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