如何在 gtk 3.0 中构建示例项目
How to build a sample project in gtk 3.0
我刚开始在 Ubuntu 中使用 eclipse cdt 和 gtk 学习 C++ 编程。
我能够安装和配置的软件包是:
- 安装gtk3.0
- 从市场安装 pkg-config
- 在 Cross G++ 编译器中添加了 ${PKCFLAGS}
现在:${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}${PKCFLAGS}
- 在交叉 G++ 链接器中添加了 ${PKCFLAGS}
现在:${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}${PKCFLAGS}
我尝试运行一个示例程序:
#include <stdio.h>
#include <stdlib.h>
#include <gtk/gtk.h>
int main (int argc, char *argv[]) {
GtkWidget *window;
gtk_init (&amp;argc, &amp;argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), &quot;Window :-)&quot;);
g_signal_connect (window, &quot;destroy&quot;, G_CALLBACK (gtk_main_quit), NULL);
gtk_widget_show (window);
gtk_main ();
return 0;
}
但我仍然收到错误消息"Unresolved inclusion: "
有两个问题,
- 我还需要在 C/C++ Build => settings
中添加 gtk+2.0
我没注意到,但我附加的代码有几个问题
加上一些奇怪的符号,我把它改成这样:
#include <stdio.h>
#include <stdlib.h>
#include <gtk/gtk.h>
int main (int argc, char *argv[]) {
GtkWidget *window;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Hello world");
g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
gtk_widget_show (window);
gtk_main ();
return 0;
}
运行 在终端中
pkg-config --cflags gtk+-3.0
并将输出放在 Eclipse 设置中某处的 "compiler flags" 字段中。
运行
pkg-config --libs gtk+-3.0
并将此命令的输出放在 "linker flags" 字段中。除非你真的在交叉编译,否则不要使用交叉编译器设置。只要您的代码正确,这应该可以编译。
我刚开始在 Ubuntu 中使用 eclipse cdt 和 gtk 学习 C++ 编程。
我能够安装和配置的软件包是:
- 安装gtk3.0
- 从市场安装 pkg-config
- 在 Cross G++ 编译器中添加了 ${PKCFLAGS} 现在:${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}${PKCFLAGS}
- 在交叉 G++ 链接器中添加了 ${PKCFLAGS} 现在:${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}${PKCFLAGS}
我尝试运行一个示例程序:
#include <stdio.h>
#include <stdlib.h>
#include <gtk/gtk.h>
int main (int argc, char *argv[]) {
GtkWidget *window;
gtk_init (&amp;argc, &amp;argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), &quot;Window :-)&quot;);
g_signal_connect (window, &quot;destroy&quot;, G_CALLBACK (gtk_main_quit), NULL);
gtk_widget_show (window);
gtk_main ();
return 0;
}
但我仍然收到错误消息"Unresolved inclusion: "
有两个问题,
- 我还需要在 C/C++ Build => settings 中添加 gtk+2.0
我没注意到,但我附加的代码有几个问题 加上一些奇怪的符号,我把它改成这样:
#include <stdio.h> #include <stdlib.h> #include <gtk/gtk.h>
int main (int argc, char *argv[]) { GtkWidget *window;
gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "Hello world"); g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL); gtk_widget_show (window); gtk_main (); return 0;
}
运行 在终端中
pkg-config --cflags gtk+-3.0
并将输出放在 Eclipse 设置中某处的 "compiler flags" 字段中。
运行
pkg-config --libs gtk+-3.0
并将此命令的输出放在 "linker flags" 字段中。除非你真的在交叉编译,否则不要使用交叉编译器设置。只要您的代码正确,这应该可以编译。