我正在尝试学习如何在C中使用GTK。
我正在使用Eclipse CDT开发。我从示例网站复制了以下代码:
#include <gtk/gtk.h>
#include <stdlib.h>
void displayUI()
{
GtkWidget* mainWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size(GTK_WINDOW(mainWindow), 400, 300);
gtk_window_set_title(GTK_WINDOW(mainWindow), "GTK Simple Example");
gtk_window_set_position(GTK_WINDOW(mainWindow), GTK_WIN_POS_CENTER_ALWAYS);
gtk_signal_connect(GTK_OBJECT(mainWindow), "destroy", G_CALLBACK(gtk_main_quit), NULL);
gtk_widget_show_all(mainWindow);
}
int main(int argc, char *argv[]) {
gboolean b = gtk_init_check(&argc, &argv);
if(b == 0) {
puts("Failed to init");
exit(0);
}
gtk_init(&argc, &argv);
displayUI();
gtk_main();
return EXIT_SUCCESS;
}
每次我尝试运行此程序(或其他任何涉及GTK的程序时,Windows都会立即显示“InsertProgramNameHere.exe已崩溃”消息。
我已经正确安装了MinGW,MinSYS,PKG-CONFIG和MAKE。该程序编译良好......它不会运行。
有什么想法吗?
更新
我发现了这个错误日志。似乎存在依赖性问题。
Faulting application TestRun.exe, version 0.0.0.0, time stamp 0x4f839a6a, faulting
module libgtk-win32-2.0-0.dll, version 6.0.6002.18541, time stamp 0x4ec3e39f, exception
code 0xc0000135, fault offset 0x0006f52f, process id 0x1674, application start time
0x01cd16c174d3df90.
答案 0 :(得分:4)
异常代码0xc0000135
那是STATUS_DLL_NOT_FOUND。 Gtk +有大量的依赖DLL。可能最好的选择是使用all-in-one bundle并将存档中bin目录的全部内容复制到程序的EXE目录中。原油但the docs对它毫无歉意:
许多开发人员文件都相对无关紧要。如果您打算重新分发GTK +运行时,您需要确定自己可以遗漏哪些文件
答案 1 :(得分:1)
您确定您的GTK安装目录在PATH中吗?
答案 2 :(得分:0)
您需要在环境变量中添加(MinGW,MinSYS和gtk-dev)的bin文件夹的路径。