首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vala示例编译错误

Vala示例编译错误
EN

Stack Overflow用户
提问于 2017-05-06 04:37:33
回答 2查看 551关注 0票数 2

从Windows64项目中为MSYS2安装了Vala。开始从https://wiki.gnome.org/Projects/Vala/Examples运行各种示例。有些例子会产生错误,例如

..。“杂波样本:动画演员”

代码语言:javascript
复制
D:\Projects\Vala\Examples>valac.exe --version
Vala 0.36.1-dirty

D:\Projects\Vala\Examples>valac.exe --pkg clutter-1.0 clutter.vala -o clutter.exe
D:/Projects/Vala/Examples/clutter.vala.c:7:29: fatal error: clutter/clutter.h: No such file or direc
tory
 #include <clutter/clutter.h>
                             ^
compilation terminated.
error: cc exited with status 1
Compilation failed: 1 error(s), 0 warning(s)

..。和"Vala GTK+ 3.x示例:基本示例“

代码语言:javascript
复制
D:\Projects\Vala\Examples>valac.exe --version
Vala 0.36.1-dirty

D:\Projects\Vala\Examples>valac.exe --pkg gtk+-3.0 gtk+3-hello.vala -o gtk+3-hello.exe
D:/Projects/Vala/Examples/gtk+3-hello.vala.c:17:21: fatal error: gtk/gtk.h: No such file or director
y

                     ^
compilation terminated.
error: cc exited with status 1
Compilation failed: 1 error(s), 0 warning(s)

...and the Vala集合: libgee示例

代码语言:javascript
复制
D:\Projects\Vala\Examples>valac.exe --version
Vala 0.36.1-dirty

D:\Projects\Vala\Examples>valac.exe --pkg=gee-0.8 libgee-collections.vala -o libgee-collections.exe

error: Package `gee-0.8' not found in specified Vala API directories or GObject-Introspection GIR di
rectories
Compilation failed: 1 error(s), 0 warning(s)

我意识到pkg:gee-0.8还没有安装,但是我使用pacman找到了0.20.0-1。我不知道如何参考这个图书馆?

代码语言:javascript
复制
$ pacman -Ss gee -v
Root      : /
Conf File : /etc/pacman.conf
DB Path   : /var/lib/pacman/
Cache Dirs: /var/cache/pacman/pkg/
Hook Dirs : /usr/share/libalpm/hooks/  /etc/pacman.d/hooks/
Lock File : /var/lib/pacman/db.lck
Log File  : /var/log/pacman.log
GPG Dir   : /etc/pacman.d/gnupg/
Targets   : gee
mingw32/mingw-w64-i686-libgee 0.20.0-1
    A collection library providing GObject-based interfaces and classes for
    commonly used data structures (mingw-w64)
mingw64/mingw-w64-x86_64-libgee 0.20.0-1
    A collection library providing GObject-based interfaces and classes for
    commonly used data structures (mingw-w64)

显然,我的安装不正确/不完整。我需要修改或安装什么来解决这类问题?

谢谢你的帮忙!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-06 15:29:56

直接运行valac.exe可能是个问题。

通常,在使用msys2编译某些内容时,首先输入msys2 shell,并正确设置MSYSTEM环境变量。(在msys2根文件夹中有脚本和较新版本的可执行文件可以为您做到这一点)。

例如,当您设置MSYSTEM=MINGW64时(警告:MINGW64必须是大写!)然后运行mingtty.exebash.exe --login,然后检查您的PKG_CONFIG_PATH var:

代码语言:javascript
复制
$ echo $PKG_CONFIG_PATH
/mingw64/lib/pkgconfig:/mingw64/share/pkgconfig

一定要理解这三种MSYSTEM设置的区别:

  • MSYS -仅用于引导核心msys2系统并用于封装目的
  • MINGW32 / MINGW64 --使用msys2时所处的“正常”环境(32位/64位)。

不同的pacman环境的MSYSTEM包名都有前缀。也就是说,以mingw-w64-x86_64开头的包在MSYSTEM=MINGW64环境中使用。

vala使用pkg-config (确保安装了mingw64/mingw-w64-x86_64-pkg-config ),当您使用--pkgpkg-config指定某些内容时,然后搜索.pc文件(比如gee-0.8.pc)。

mingw-w64-x86_64-libgee包将其pc文件安装为/mingw64/lib/pkgconfig/gee-0.8.pc

票数 1
EN

Stack Overflow用户

发布于 2017-05-06 11:21:06

对于gee-0.80.8是接口版本号,而不是发布版本号。所以,安装0.20.0版本,相关的接口文件就可以使用了。这也适用于杂波和GTK+3。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43816762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档