无法在 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
命令中命名cairo
;gtk+-3.0
命名它需要的包。)
【讨论】:
以上是关于无法在 Windows 10 上编译 Cairo C 代码的主要内容,如果未能解决你的问题,请参考以下文章
mingw 不会在我的 Windows10 上编译 libnet
我可以在一个版本的 Windows 上编译 C 程序,然后在另一个版本的 Windows 上运行它吗?