MacOS下如何用C语言中的gtk.h编译代码?

问题描述 投票:0回答:1

我有 40 年的计算机经验,但我是自学的,而且我的 C 语言处于中级水平,所以我不会了解更高级的主题。我正在尝试通过观看 这些 YouTube 视频 来学习使用 GTK+,但它们适用于 Linux。我希望我的程序能够跨平台运行 Windows 和 Mac。我有一台 2019 年款、英特尔、配备 Ventura 的 Macbook Pro (MacOS 13.4.1)。我还没有找到有关如何在 Ventura 上安装 GTK+ 头文件的教程。我能做的最好的事情就是使用 MacPorts。 MacPorts 将 gtk.h 放入“/opt/local/include/gtk-3.0/gtk/gtk.h”中。我使用了这段代码:

#include <gtk/gtk.h>

int main(int argc, char **argv)
{

gtk_init (&argc, &argv);

// gtk codes goes here

gtk_main ();

return 0;
}

以及这个编译指令:

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

但出现此错误:

zsh: command not found: pkg-config 
zsh: command not found: pkg-config 
In file included from start.c:1: /opt/local/include/gtk-3.0/gtk/gtk.h:30:10: fatal error: 'gdk/gdk.h' file not found
#include <gdk/gdk.h>
         ^~~~~~~~~~~ 
1 error generated.

将 include 指令更改为 #include "/opt/local/include/gtk-3.0/gtk/gtk.h" 给了我同样的错误。我需要做什么才能编译代码?

c macos include gtk3 macports
1个回答
0
投票

您使用的编译命令取决于

pkg-config
命令,MacOS默认不提供该命令。您应该能够从 MacPorts 安装它。

正如您已经发现的,Gtk 是基于 X11 的,因此您还需要一个 X 服务器。 MacOS 已经多年没有提供 X 服务器了,但 Apple 确实将其曾经提供的服务器分拆到一个单独的项目 XQuartz 中,该项目仍在维护中。

© www.soinside.com 2019 - 2024. All rights reserved.