在Arch Linux上,升级到Gnome 3.14之后,我在Webkit2Gtk上遇到了一些麻烦。
瓦拉: 考虑以下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): 如果我运行this gjs example或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)
答案 0 :(得分:1)
事实上,您必须指定--Xcc
标志表明您缺少WebKit的pkgconfig文件。 webkit2gtk-3.0.pc
中应该有/usr/lib/pkgconfig
。 Arch包webkit2gtk有一个名为webkit2gtk-4.0.pc
的pkgconfig文件。因此,如果重命名VAPI文件,则应该正确链接。
答案 1 :(得分:0)
实际上使用webkit2gtk-4.0我不再需要提供vapi文件了。所以我可以删除我的webkit2gtk-4.0.vapi和complile这样(更简单):
valac --pkg gtk+-3.0 --pkg webkit2gtk-4.0 --thread valawebkit.vala