C GLib GIO错误**:系统上未安装GSettings架构
很遗憾,我使用的是Windows(Windows7 x64)。 在Code::Blocks和GTK+3.6.4中使用MinGW编译器。 我从glib手动编译了所有模式C GLib GIO错误**:系统上未安装GSettings架构,c,gtk,mingw,gtk3,C,Gtk,Mingw,Gtk3,很遗憾,我使用的是Windows(Windows7 x64)。 在Code::Blocks和GTK+3.6.4中使用MinGW编译器。 我从glib手动编译了所有模式 当我使用“文件选择器”对话框/颜色选择器时-这无关紧要, 我得到以下错误: GLib GIO ERROR**:系统上未安装GSettings架构,程序终止 要解决这个问题,我必须做些什么?问题在于系统上显然没有编译的油嘴滑舌的模式 您需要glib编译模式并找到glib-2.0/schemas目录,该目录位于/usr/share
当我使用“文件选择器”对话框/颜色选择器时-这无关紧要, 我得到以下错误:
GLib GIO ERROR**:系统上未安装GSettings架构
,程序终止
要解决这个问题,我必须做些什么?问题在于系统上显然没有编译的油嘴滑舌的模式 您需要
glib编译模式
并找到glib-2.0/schemas
目录,该目录位于/usr/share/glib-2.0/schemas
,我不知道它是否会在MinGW中的同一路径中找到,但我不知道为什么它不会找到,因此您必须执行以下命令1
glib编译模式/usr/share/glib-2.0/schemas/
这将创建一个文件gschemas.compiled
,因此您需要写入权限,然后错误将消失
1提供GLib架构安装在该目录中。GSettings查看
$XDG\u DATA\u DIR
环境变量所指向目录中的编译架构。您可以使用为您设置环境的启动程序脚本,也可以依赖前缀,将gschemas.compiled文件安装在share/glib-2.0/schemas
目录中与应用程序二进制文件相同的前缀下,例如,如果您具有以下布局:
YourApp/
bin/
YourApp.exe
lib/
libgtk3.dll
libgobject.dll
…
share/
…
glib-2.0/
schemas/
确保
gschemas.compiled
文件位于YourApp/share/glib-2.0/schemas
下,并且org.gtk.Settings.FileChooser.gschema.xml
也在那里 我可以通过以下文档解决此问题
将以下环境变量添加到共享文件夹,在我的案例中与下面类似
XDG_DATA_DIRS:D:\vcpkg\installed\x64 windows\share,因为我和许多其他用户一样都坚持使用windows。顺便说一下,我已经提到我已经成功地编译了它们。。尽管它们已经在bundle中编译(即
gschemas.compiled
已经存在),删除它并重新编译它,或者搜索与缺少的模式
对应的.gschema.xml
文件,检查它是否编译成功或是否编译过。我尝试了两种不同的gschemas.compiled
第一种,默认情况下编译(依赖于捆绑包的第三方),另一种,由我手动编译。尽管。。我需要从gtk2的bin中使用intl.dll
,因为它不存在,并且在使用gsettings
时导致崩溃。另一方面,我不知道你在想什么。没有编译,或者只是没有复制到可执行文件的可再发行文件夹(以及DLL、图标、主题等)中,我从来没有完全理解这个变量的含义。这是一个系统环境变量,我可以从高级系统设置中设置,名称为XDG\u DATA\u DIR
,值为D:\apps\gtk\share\glib-2.0\schemas
,我的目标是静态编译我的程序。XDG\u DATA\u DIR
环境变量是一个以冒号分隔的目录列表,按优先顺序递减,用于计算文件路径-请参阅:作为旁白:GLib和GTK+不太喜欢静态编译,因为它们已经或依赖于各种运行时可加载模块。您可以调整其中大多数的加载路径。不过,在这种情况下,加载文件与静态或动态链接无关。它是辅助文件的位置,您可以使用环境变量来处理可重定位性。听起来可能有些无礼。。但我看到你有足够的知识来帮助我。您是否有空闲时间通过Team Viewer提供帮助。我会记住一个作为回报。返回成功+1。这为我解决了这个问题,并且很可能回答了这个问题,尽管它没有被标记为这样(并且已经出轨)。