2
// gcc -o 0 $(pkg-config --cflags --libs gtk+-2.0) 1.c
#include <gtk/gtk.h>
int main (int argc, char *argv[]) {
    GFile *f1 = NULL;
    f1 = g_file_new_for_path ("/home/user/1.txt");
    g_printf ("File loaded successfully.\n");
    return 0;
}

このプログラムを実行すると、g_file_new_for_path()(/home/user/1.txtが存在するかどうかに関係なく)でセグメンテーション違反が発生します。
コードを書き間違えましたか?それとも私のシステムのバグですか?

PS:私のシステムはArch Linuxで、GLibのバージョンは2.28.8-1です。

4

2 に答える 2

3

このスレッドのように、 -をg_type_init()使用する前に呼び出す必要があります。その後、プログラムは動作します。g_file_new_for_path

于 2011-08-29T17:16:27.127 に答える
2

あなたが使うべきすべてのもみ

// gcc -o 0 $(pkg-config --cflags --libs gio-2.0) 1.c    
#include <gio/gio.h>

それ以外の

// gcc -o 0 $(pkg-config --cflags --libs gtk+-2.0) 1.c    
#include <gtk/gtk.h>

次に、g_type_init()の前にすべきですg_file_new_for_path(...)

于 2011-08-29T17:53:50.413 に答える