Vala 编译器找不到 gee.h

Vala 编译器找不到 gee.h

我按照 GNOME 指南在 Ubuntu 上设置 Vala。并尝试第一个 GEE 样本

$ valac --pkg gee-0.8 gee-list.vala 
gee-list.vala.c:8:10: fatal error: gee.h: No such file or directory
 #include <gee.h>
          ^~~~~~~
compilation terminated.
error: cc exited with status 256
Compilation failed: 1 error(s), 0 warning(s)

我已安装所有开发包,并且标头为/usr/include/gee-0.8/gee.h。我还需要设置其他内容吗?

我正在使用 Ubuntu 18.04 和 Pantheon 桌面。

  1. 更新有关我的环境的更多信息:
~$ echo | gcc -Wp,-v -x c++ - -fsyntax-only
ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/7"
ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/7/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/include/c++/7
 /usr/include/x86_64-linux-gnu/c++/7
 /usr/include/c++/7/backward
 /usr/lib/gcc/x86_64-linux-gnu/7/include
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include
End of search list.
$ echo | gcc -Wp,-v -x c - -fsyntax-only
ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/7/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc/x86_64-linux-gnu/7/include
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include
End of search list.

答案1

关于缺少头文件的一些常规编译提示:

在这种情况下,您应该将适当的目录添加到包含路径中,只需通过 pkg-config 即可。不支持使用完整路径名直接访问文件。

在你的 Makefile 中添加类似这样的内容:

CFLAGS += `pkg-config --cflags gtk+-3.0` 
 LIBS += `pkg-config --libs gtk+-3.0` 

这将自动为当前系统添加正确的编译器和链接器选项。

邮件存档有一些可能有用的提示:

回复:[Vala] 未找到软件包“Gee-0.8”

Ralf Ganswindt 2018 年 1 月 26 日星期五 22:08:52 -0800

谢谢,这就是缺失的信息。我找到了获取 -dev 包的 ubuntu 存储库的正确名称,瞧,.gir 文件出现在了它应该出现的位置。我查看了 vala 目录并在 /usr/share/vala/vapi/ 下找到了它,但直到我将文件复制到 /usr/share/vala-0.36/vapi/ 后,valac 仍然找不到它。我不知道这是否是 Ubuntu 独有的,但我认为这可能对某些人有用。

再次感谢,

拉尔夫

拉尔夫·甘斯温特 [电子邮件保护]

2018 年 1 月 25 日星期四下午 12:03,Al Thomas 写道:

>

2018 年 1 月 25 日星期四 16:41:31 GMT,Ralf Ganswindt < [电子邮件保护]> 写道:

我正在尝试使用 Vala,到目前为止,我喜欢它的工作原理。但是,我尝试从示例程序中编译一个基本的 gee 示例,结果如下:

$ valac --pkg Gee-0.8 list.vala 错误:在指定的 Vala API 目录中未找到包“Gee-0.8”或

应该是--pkg gee-0.8 区分大小写!

您还需要安装开发文件。对于 Ubuntu,这类似于 apt install libgee-dev

GIR 文件:一开始最好避免使用 GIR 文件。它们是 GObject Introspection Repository (GIR) 文件,其中包含有关 C 库接口的足够信息,可用于生成各种语言(包括 Vala)的绑定。然后可以使用 Vala 工具 vapigen 从 GIR 生成 Vala 应用程序编程接口 (VAPI) 文件。如果未找到 VAPI,valac 可以自动执行此操作。

通过使用大写版本 --pkg Gee-0.8,valac 尝试通过搜索相关 GIR 为您生成 VAPI。看起来也没有找到,可能是因为您没有安装开发文件。如果您查看 dev 包中的文件,您应该会看到文件名的差异。

刚开始时,您需要专注于使用 VAPI 文件与库进行交互。

一切顺利,


vala-list 邮件列表 [电子邮件保护] https://mail.gnome.org/mailman/listinfo/vala-list

此外,我读到一些地方build-essentials也提到应该安装。

sudo apt install build-essentials

相关内容