2015-03-10 10 views
5

Niestety, używam systemu Windows (Windows7 x64). Z kompilatorem MinGW w Code :: Blocks i GTK + 3.6.4. Ręcznie skompilowałem wszystkie schematy z glib.GLIB-GIO-ERROR **: W systemie nie są instalowane schematy GSTtings.


Kiedy używać plików dialogowe Chooser/colorpicker - to nie ma znaczenia, otrzymuję następujący błąd: GLib-GIO-ERROR**: No GSettings schemas are installed on the system i program kończy.


Co muszę zrobić, aby to naprawić?

Odpowiedz

3

Problem dotyczy schematów Glib, które najwyraźniej nie są kompilowane w systemie.

Musisz glib-compile-schemas i znajdź katalog glib-2.0/schemas, który znajduje się w /usr/share/glib-2.0/schemas, ja nie wiem, czy okaże się w tej samej ścieżce w MinGW, ale nie widzę, dlaczego nie będzie, więc należy wykonać następujące polecenie

glib-compile-schemas /usr/share/glib-2.0/schemas/ 

i utworzy plik gschemas.compiled więc trzeba pisać pozwolenie, wówczas błąd odejdzie.


Pod warunkiem, że Glib schematy są zainstalowane w tym katalogu.

+0

Ponieważ utknąłem w systemie Windows tak, jak wielu innym użytkownikom. Przy okazji, już wspomniałem, że je skompilowałem z powodzeniem ... mimo że są już skompilowane w pakiecie i tak (tzn. 'Gschemas.compiled' już istnieje) – DeltaProxy

+0

Usuń go, przekompiluj lub wyszukaj' .gschema plik .xml' odpowiadający brakującym 'schematom' i sprawdza, czy został skompilowany pomyślnie lub został skompilowany w ogóle. –

+0

Cóż, próbowałem z dwoma różnymi 'gschemas.compiled' pierwszy, który jest skompilowany domyślnie (jako zależne od strony trzeciej), a drugi, skompilowany ręcznie przeze mnie. Chociaż ... Musiałem użyć 'intl.dll' z binku gtk2, ponieważ nie istniało i powodowało awarię podczas używania' gsettings'. Z drugiej strony nie mam pojęcia, co sprawdzam w umyśle. – DeltaProxy

6

GSettings przegląda skompilowane schematy w katalogach wskazanych przez zmienną środowiskową $XDG_DATA_DIR. Możesz użyć skryptu programu uruchamiającego, który ustawia środowisko dla ciebie lub możesz polegać na prefiksie i instalować pliki gschemas.compiled w katalogu share/glib-2.0/schemas pod tym samym prefiksem, co plik binarny aplikacji, np. jeśli mają następujący układ:

YourApp/ 
    bin/ 
    YourApp.exe 
    lib/ 
    libgtk3.dll 
    libgobject.dll 
    … 
    share/ 
    … 
    glib-2.0/ 
     schemas/ 

Upewnij się, że plik gschemas.compiled jest pod YourApp/share/glib-2.0/schemas, i że org.gtk.Settings.FileChooser.gschema.xml jest również tam.

+0

Nigdy nie zrozumiałem dokładnie, co to jest z tą zmienną. Jest to zmienna środowiskowa systemu, którą mogę ustawić z zaawansowanych ustawień systemowych o nazwie 'XDG_DATA_DIR' i wartość' D: \ apps \ gtk \ share \ glib-2.0 \ schemas' Również zamierzam skompilować moje programy statycznie. – DeltaProxy

+1

Zmienna środowiskowa 'XDG_DATA_DIR' jest rozdzielaną dwukropkami listą katalogów, w malejącej kolejności preferencji, wykorzystywanej do obliczania ścieżek dla plików - patrz: http://standards.freedesktop.org/basedir-spec/basedir-spec-latest .html – ebassi

+1

Na marginesie: GLib i GTK + nie lubią być statycznie kompilowane, ponieważ mają, lub polegają na różnych ładowalnych modułach wykonawczych. Możesz dostosować ścieżki ładowania dla większości z nich. W tym przypadku jednak ładowanie pliku nie ma wpływu na łączenie statyczne lub dynamiczne. Jest to lokalizacja dla plików pomocniczych i można używać zmiennych środowiskowych do radzenia sobie z relokacją. – ebassi

Powiązane problemy