GTK 在“gtk-4.0”下安装,源代码中的 Include 语句已过时

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

操作系统:Linux Mint 21.1 x86_64

正如 GTK 官方网站 (https://www.gtk.org/docs/installations/linux/) 中所述,我下载了我的发行版的开发包:

sudo apt-get install libgtk-4-dev

安装成功完成并将内容安装到以下文件夹中:

/usr/include/gtk-4.0

文件夹结构如下:

gtk-4.0
------->gdk
------->gsk
------->gtk
------->unix-print

因此,当我想包含

gtk.h
时,我需要写
#include <gtk-4.0/gtk/gtk.h>

但是这样的 include 语句被证明是有问题的,当我的 LSP 引发诸如

In included file: 'gtk/css/gtkcss.h' file not found
 旁边的 
#include <gtk-4.0/gtk/gtk.h>

之类的错误时,我第一次注意到这一点

存在被拒绝的文件是存在的,但是因为在源文件

gtk.h
中,它已尝试使用开头没有
#include <gtk/css/gtkcss.h>
gtk-4.0/
语句进行访问,因此它已过时。这个问题在代码库中随处可见。

天真地,我认为将

gtk-4.0
的内容移动到
usr/include
(我需要root访问权限,我认为这表明这不是最佳解决方案)可以解决问题。它在某种程度上做到了,但随后它抱怨找不到
glib.h
,它又位于名为
glib-2.0
的父文件夹中,但这并没有阻止我采用非理性的解决方案,然后我也继续将该文件夹的内容移动到
usr/include
。正当我以为我已经解决了它时,它开始抱怨其他事情,此时我感到害怕并通过时移恢复了我的包含文件可能造成的损坏。

我在网上搜索答案,但找不到任何帮助。 如果有人碰巧知道解决方案,我将不胜感激。

编辑:

pkg-config --cflags --libs gtk4
将其添加到我的
gcc
参数后,我可以编译我的项目。我还将
pkg-config --cflags gtk4
的输出添加到我的包含目录中,现在我的 LSP 会自动完成,但在我看来这不是一个好的解决方案,我应该能够通过
gtk/gtk.h
省略
gkt-4.0/
来访问它

linux include gtk linux-mint gtk4
1个回答
0
投票

在使用 GTK4 和 clangd 时,我在 LunarVim 上的 aucomplete 遇到同样的问题。尝试消除这些与包含文件相关的错误是很困难的。我读到您取得了一些成就,但没有得到您专门为解决问题所做的事情,并且由于我无法发表评论并且我迫切需要解决方案,所以我希望您在这里帮助我。

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