无法在 Windows 10 上编译 Cairo C 代码

Posted

技术标签:

【中文标题】无法在 Windows 10 上编译 Cairo C 代码【英文标题】:Cannot compile Cairo C code on Windows 10 【发布时间】:2017-10-01 00:55:24 【问题描述】:

我正在尝试使用 msys64 在 Windows 10 上编译 zetcode lines。

我使用如下编译命令:

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

并得到以下错误:

-bash: pkg-config: command not found
example.c:1:19: fatal error: cairo.h: No such file or directory
 #include <cairo.h>

不过我之前做了pacman -S mingw-w64-i686-cairo,安装成功。当我输入 **pacman -Ss mingw-w64-i686-cairo ** 我得到以下信息:

mingw32/mingw-w64-i686-cairo 1.15.2-4 [installed]
    Cairo vector graphics library (mingw-w64)

当我运行 gcc -v 我得到:

使用内置规范。 COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-msys/5.3.0/lto-wrapper.exe 目标:x86_64-pc-msys 配置:/msys_scripts/gcc/src/gcc-5.3.0/configure --build=x86_64-pc-msys --prefix=/usrable-static --enable-version-specific-runtime-libs --with-arch =x86-64 --with-tune=generic --diso --enable-graphite --enable-threads=posix --enable-libatomic --enable-libcilkrts --enable-libg --disable-win32-registry -- disable-symvers --with-gnu-ld --with-gnu-as --disable-isl-version-cith-system-zlib --enable-linker-build-id --with-default-libstdcxx-abi=gcc4 -兼容的 线程模型:posix gcc 版本 5.3.0 (GCC)

最后但同样重要的是,如果我按照website 上的说明进行操作,我可以编译 lines 代码。但是,提供的 GTK3 版本非常旧,无法运行更新的code。

Cairo.h 的路径是:

C:\MinGW\include\cairo 用于安装过时(但有效)的 GTK+3

C:\msys64\mingw32\include\cairo

C:\msys64\mingw64\include\cairo 用于使用 msys64 安装较新(但不工作)的 GTK3

MSYS64 试图在哪个目录中查找 Cairo 库?

【问题讨论】:

您确定编译器查找包含的路径是正确的吗? 文件夹 C:\msys64\mingw64\include\cairo 确实存在。如何检查编译器查找包含的位置? gcc -v,我相信。和gcc -I dir/ect/ory 添加一个目录来搜索包含。 无法理解 gcc -v 输出!你有更好的主意吗? 你是怎么编译的?你对编译器的论点是什么?使用 cairo 编译单个 C 文件的标准方法是 gcc foo.c $(pkg-config --cflags --libs cairo)。不知道这样调用 pkg-config inline 是否适用于带有 msys64 的 Windows 10。想法是:将pkg-config --cflags --libs cairo 的输出添加到编译器参数中。 【参考方案1】:

您显示了两条消息。第二行和第三行来自编译器。第一行来自外壳。第一个错误导致了第二个错误。它说pkg-config 命令不存在。你需要安装它的包。使用这个命令(它也会安装其他有用的包):

pacboy sync base-devel

(您无需在pkg-config 命令中命名cairogtk+-3.0 命名它需要的包。)

【讨论】:

以上是关于无法在 Windows 10 上编译 Cairo C 代码的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Windows 7 上编译 restbed

mingw 不会在我的 Windows10 上编译 libnet

我可以在一个版本的 Windows 上编译 C 程序,然后在另一个版本的 Windows 上运行它吗?

libev-4.15 无法在 OSX 10.8 上编译

在MacOS系统上编译OpenJDK12并使用CLion调试

使用 minGW 在 Windows 上编译 iPerf2.0.5