Compiler errors GTK&x2B;教程编译错误

Compiler errors GTK&x2B;教程编译错误,compiler-errors,gtk,gtk3,Compiler Errors,Gtk,Gtk3,我试图在上完成GTK+教程,但在编译代码时出现错误-pthread:command not found。我使用的是Ubuntu 17.04。我的编译命令是: `pkg-config --cflags gtk+-3.0` -o exampleappwin exampleappwin.c `pkg-config --libs gtk+-3.0` 我从下载了以下文件:,因此我知道它们是正确的。提前谢谢 根据下面的评论添加到这一点。收到错误消息: /usr/lib/gcc/x86_64

我试图在上完成GTK+教程,但在编译代码时出现错误-pthread:command not found。我使用的是Ubuntu 17.04。我的编译命令是:

    `pkg-config --cflags gtk+-3.0` -o exampleappwin exampleappwin.c `pkg-config --libs gtk+-3.0`
我从下载了以下文件:,因此我知道它们是正确的。提前谢谢

根据下面的评论添加到这一点。收到错误消息:

    /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o: In function `_start':

   (.text+0x20): undefined reference to `main'

    collect2: error: ld returned 1 exit status
    /tmp/ccMOUa6f.o: In function `main':

    main.c:(.text+0x19): undefined reference to `example_app_new'

    collect2: error: ld returned 1 exit status        
然后,当我编译main时,我收到错误:

    /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o: In function `_start':

   (.text+0x20): undefined reference to `main'

    collect2: error: ld returned 1 exit status
    /tmp/ccMOUa6f.o: In function `main':

    main.c:(.text+0x19): undefined reference to `example_app_new'

    collect2: error: ld returned 1 exit status        

您提到的示例是更大示例集的一部分,它准备与从父目录/文件夹发布的Make或Meson一起使用

如果您想“手工”编译,那么您必须注意到需要处理一些资源文件

:

要仅编译示例,则应执行以下操作:

gcc -o exampleapp main.c exampleapp.c exampleappwin.c `pkg-config --cflags --libs gtk+-3.0`
这将编译,但当您运行它时,由于缺少资源,将显示警告

./exampleapp 

(exampleapp:4171): Gtk-CRITICAL **: Unable to load resource for composite template for type 'ExampleAppWindow': The resource at '/org/gtk/exampleapp/window.ui' does not exist
(exampleapp:4171): Gtk-CRITICAL **: gtk_widget_class_bind_template_child_full: assertion 'widget_class->priv->template != NULL' failed
(exampleapp:4171): Gtk-CRITICAL **: gtk_widget_init_template: assertion 'template != NULL' failed
现在您应该准备资源(将创建resources.c):

然后重新编译(添加上述resources.c文件):

警告应该消失,并且窗口必须包含标题栏

有关此问题,您可以找到有关编译资源的更多信息: 但是请注意,您应该使用像Make或Meson这样的构建工具,因为项目已经有了


另一个选项是下载示例项目并全部编译。

您忘记指定编译器。示例:
gcc-o exampleappwin exampleappwin.c`pkg config--libs gtk+-3.0`
(其中gcc是andlabs提到的编译器)哇!我不敢相信我做了那件事!我总是把它放在评论里,这样我就可以剪切粘贴了。好啊我收到一个错误:
/usr/lib/gcc/x86\u 64-linux-gnu/6/../../../../x86\u 64-linux-gnu/Scrt1.o:In function
\u start':(.text+0x20):未定义对
main'集合的引用2:error:ld返回1退出状态。
当我尝试编译main时,收到一个错误:
/tmp/ccMOUa6f.o:In function
main:main.c:(.text+0x19):未定义对
示例\u app\u new“collect2的引用:错误:ld返回1退出状态
Ok。我做到了,到目前为止一切似乎都很顺利。非常感谢你。抱歉第一次发邮件。我还是不敢相信我做了那件事。将该页添加为书签。再次感谢。我真的很感激。我确实是为了记录而做的。使用它们来学习GTK。@Guest123ABC很高兴它起作用了,在学习GTK时可以自由提问。如果这个答案解决了你的问题,请随意接受它是正确的。好心的luckI试图提高你的回答,但我的声誉不到15。该公司表示,它已经计算出了上涨幅度,但在获得更高的声誉之前,它不会表现出来
gcc -o exampleapp main.c exampleapp.c exampleappwin.c resources.c `pkg-config --cflags --libs gtk+-3.0`