【问题标题】:GTK app compiles with gcc, but does not compile in codeblocksGTK 应用程序使用 gcc 编译,但不在代码块中编译
【发布时间】:2020-03-26 10:10:48
【问题描述】:

希望在 C/C++ 中实现绘图画布,在无法从 Internet 上生成代码后,我遇到了这个 sample code,它正是我所需要的。代码使用Martin提供的终端命令编译:

gcc example.c -o example `pkg-config --cflags --libs gtk+-3.0`

在 Codeblocks 中,我开始了一个新的 GTK+ 项目,在其中添加了示例代码,我得到了

错误:未知类型名称“GtkApplication”

请告知如何设置代码块。我尝试修改 CodeBlocks 中的编译器选项,但没有任何运气。

跟进:

  1. 我检查了我安装了哪些软件包,似乎我同时拥有 GTK2 和 GTK3。

  2. 我已经粘贴了“命令标志”的输出...

pkg-config --cflags --libs gtk+-3.0

在 CodeBlocks -> 项目 -> 构建选项 -> 其他编译器选项中。以前的错误消失了,但出现了新的错误:

对“gtk_widget_get_allocated_width”的未定义引用

对“gtk_widget_get_allocated_height”的未定义引用

对“gtk_application_window_new”的未定义引用

对“gtk_application_get_type”的未定义引用

对“gtk_window_set_application”的未定义引用

对“gtk_box_new”的未定义引用

对“gtk_application_new”的未定义引用

这一切背后的动机是使用调试器(我无法使用基于文本的 gdb)。

非常感谢, 丹妮

【问题讨论】:

  • 命令pkg-config ..... 的一部分只能在命令行下工作。您需要在命令行上运行该命令(不带反引号 (`),然后使用输出来调整代码块中的编译器设置。或者,您可以只使用文本编辑器来编辑代码并继续在命令行。这个网站上处理代码块的问题数量让我觉得不值得努力学习。
  • 您可能使用的是 GTK+2 而不是 GTK+3。
  • @thurizas 我没有在 CodeBlocks 上设置,但我一直在寻找一个可视化 IDE,可以在 linux (Raspbery Pi) 上运行,它有一个不错的调试器(单步执行代码并至少添加手表) .有什么建议? (VS 代码不起作用)
  • 建议很难,因为它们大多是基于意见的。有很多 IDE 支持调试器,有些是开箱即用的,有些则需要调整。您是否尝试找到一个比较 IDE 的网站?您不妨先看看this Wikipedia page
  • @Dani Dobre 我在 Linux 上尝试了很多 IDE,但我总是回到我所学的东西 - emacs。您可以从 emacs 内部运行 gdb 并单步执行代码、设置断点、检查变量和内存。你的里程肯定会有所不同:) 只是好奇你为什么不能使用 gdb?

标签: c compiler-errors codeblocks gtk3


【解决方案1】:

找到解决方案:

在CodeBlocks中,Project -> Build Options ->Compiler settings -> Other compiler options,添加

`pkg-config --cflags gtk+-3.0`

在Project -> Build Options -> Linker settings -> Other linker options,添加

`pkg-config --libs gtk+-3.0`

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-24
    • 1970-01-01
    • 2019-06-07
    • 2020-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多