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

MSYS2 の内部を検索しようとしましたlibcairo-2.dllが、何も表示されません。Google 検索では、これ以上近づきません。

これは、MSYS2 開発の学習曲線の一部であると思われます。私は何が欠けていますか?

4

1 に答える 1

4

コンパイルされた実行可能ファイルを実行するときに、環境変数に含まれています/mingw64/binか?PATH

libcairo-2.dll(および他の多くの .dll ファイル) は/mingw64/bin.

これは、MSYS2 シェルとは異なるMinGW シェルで既に解決されています。どちらもスタートメニューにあります。

于 2015-11-24T21:39:42.673 に答える