静态链接GTK + WebKit 1.0应用程序

时间:2016-02-05 18:09:07

标签: webkit gtk static-linking

我创建了或改编这个简单的webkit-1.0演示(仅包含一个带有webview的窗口,里面显示一个本地HTML文件):

// From: https://wiki.gnome.org/Projects/WebKitGtk/ProgrammingGuide/Tutorial
#include <gtk/gtk.h>
#include <webkit/webkit.h>

static void destroyWindowCb(GtkWidget* widget, GtkWidget* window) { gtk_main_quit(); }
static gboolean closeWebViewCb(WebKitWebView* webView, GtkWidget* window) { gtk_widget_destroy(window); return TRUE; }

int main(int argc, char* argv[]) {
    gtk_init(&argc, &argv);
    GtkWidget *main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_default_size(GTK_WINDOW(main_window), 800, 600);
    WebKitWebView *webView = WEBKIT_WEB_VIEW(webkit_web_view_new());
    gtk_container_add(GTK_CONTAINER(main_window), GTK_WIDGET(webView));
    g_signal_connect(main_window, "destroy", G_CALLBACK(destroyWindowCb), NULL);
    g_signal_connect(webView, "close", G_CALLBACK(closeWebViewCb), main_window);
    webkit_web_view_load_uri(webView, ".../test.html");
    gtk_widget_grab_focus(GTK_WIDGET(webView));
    gtk_widget_show_all(main_window);
    gtk_main();
    return 0;
}

使用

编译此应用程序
g++ owb.cpp `pkg-config --cflags --libs gtk+-2.0 webkit-1.0`

工作正常。 但我想创建此的静态版本,因此我使用以下命令:

g++ owb.cpp -static `pkg-config --static --cflags --libs gtk+-2.0 webkit-1.0`

但是这个命令会导致错误信息:

$ g++ owb.cpp -static `pkg-config --static --cflags --libs gtk+-2.0 webkit-1.0`
/usr/bin/ld: cannot find -lgdk_pixbuf-2.0
/usr/bin/ld: cannot find -latk-1.0
/usr/bin/ld: cannot find -lharfbuzz
/usr/bin/ld: cannot find -lwebkitgtk-1.0
/usr/bin/ld: cannot find -ljavascriptcoregtk-1.0
/usr/bin/ld: cannot find -lffi
... some warnings skipped ...
collect2: error: ld returned 1 exit status

当我尝试ldconfig -p | grep gdk_pixbuf-2.0时,我得到了:

$ ldconfig -p | grep gdk_pixbuf-2.0
    libgdk_pixbuf-2.0.so.0 (libc6) => /usr/lib/i386-linux-gnu/libgdk_pixbuf-2.0.so.0
    libgdk_pixbuf-2.0.so (libc6) => /usr/lib/i386-linux-gnu/libgdk_pixbuf-2.0.so

以及所有其他图书馆。

那有什么不对?

0 个答案:

没有答案