未定义的引用`soup_session_new'

时间:2013-08-18 19:41:52

标签: vala

我正在尝试在vala中发出get请求:https://wiki.gnome.org/Vala/LibSoupSample。我完全按照它说的做,编译器会抛出这个:

Connection.vala.c:(.text+0x76): undefined reference to `soup_session_new'
collect2: ld returned 1 exit status
error: cc exited with status 256
Compilation failed: 1 error(s), 0 warning(s)

这是pkg-config --libs --cflags libsoup-2.4

的结果
-pthread -I/usr/include/libsoup-2.4 -I/usr/include/libxml2 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include  -lsoup-2.4 -lgio-2.0 -lgobject-2.0 -lglib-2.0

我有vala 0.20.1。在elementaryos上运行(最新的稳定版)。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

我今天早些时候遇到了同样的问题。似乎这个例子已经过时了。它不再被称为soup_session_new,现在引用为soup_session_sync_new。使用new Soup.SessionSync (),它应该有效。

这是一个有效的例子:

using Soup;

int main (string[] args) {

    string url = "http://google.com";

    stdout.printf ("Getting data from %s\n", url);

    var session = new Soup.SessionSync ();
    var message = new Soup.Message ("GET", url);

    session.send_message (message);
    stdout.write (message.response_body.data);
    return 0;
}