2

下面是开始编写在 MSYS2 上使用 Cairo 的代码的简单测试:

#include <cairo.h>

int main() {
  cairo_surface_t *surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 300, 300);
  cairo_t *cr = cairo_create(surface);

  cairo_set_line_width(cr, 10.0);
  cairo_set_source_rgb(cr, 0, 0, 0);
  cairo_move_to(cr, 10.0, 10.0);
  cairo_line_to(cr, 100.0, 100.0);
  cairo_stroke(cr);

  cairo_destroy(cr);
  cairo_surface_write_to_png(surface, "c.png");
  cairo_surface_destroy(surface);

  return 0;
}

此代码使用以下命令在 Darwin/MacPorts 上正确构建和执行:

$ gcc c.c -o c `pkg-config cairo --libs --cflags`

在Win8/MSYS2下,我已经安装了mingw-w64-x86_64-cairo包。相同的gcc构建命令成功,但运行生成的可执行文件会导致此错误:

C:/msys64/path/to/c.exe: error while loading shared libraries: libcairo-2.dll: cannot open shared object file: No such file or directory

我试图libcairo-2.dll在 MSYS2 内部找到,但我什么也没看到。谷歌搜索并没有让我更接近。

我怀疑这是 MSYS2 开发学习曲线的一部分;我错过了什么?

4

1 回答 1

4

/mingw64/bin运行已编译的可执行文件时,您的环境PATH变量中有吗?

libcairo-2.dll(以及许多其他 .dll 文件)位于/mingw64/bin.

这已经在 MinGW shell 中解决了,这MSYS2 shell 不同。两者都在开始菜单中。

于 2015-11-24T21:39:42.673 回答