3

MinGW (および MSYS) を使用して、Windows でcairoを構築しようとしています。Compiling GTK+ 2.16.4 for Windowsの指示に従っていますが、可能な限り最新バージョンを使用しています。

  • zlib-1.2.3
  • libpng-1.2.42
  • pixman-0.17.4
  • カイロ-1.8.8

これは、実際のカイロを構築しようとするまではうまく機能します。構成は成功しますが、make cairo の実行中に libpng のビルドへのリンクに問題があるようです。しばらくすると、次のようなエラーの長いリストが表示されます。

.libs/cairo-png.o: 関数 `png_simple_error_callback' 内:
/home/user/cairo-1.8.8/src/cairo-png.c:95: `png_get_error_ptr' への未定義の参照
.libs/cairo-png.o: 関数 `png_simple_warning_callback' 内:
/home/user/cairo-1.8.8/src/cairo-png.c:112: `png_get_error_ptr' への未定義の参照

...

.libs/cairo-png.o: 関数 `stream_read_func' 内:
/home/user/cairo-1.8.8/src/cairo-png.c:686: `png_error' への未定義の参照
collect2: ld が 1 つの終了ステータスを返しました
make[3]: *** [libcairo.la] エラー 1
make[3]: ディレクトリ `/home/user/cairo-1.8.8/src' を離れます
make[2]: *** [すべて] エラー 2
make[2]: ディレクトリ `/home/user/cairo-1.8.8/src' を離れます
make[1]: *** [全再帰] エラー 1
make[1]: ディレクトリ `/home/user/cairo-1.8.8' を離れます
make: *** [すべて] エラー 2

古いバージョンの libpng (1.2.40、GTK+ プロジェクトによって配布されているバージョン) を使用してみましたが、同じ結果が得られました。「pkg-config -cflags -libs libpng」を実行すると、「-IC:/MinGW/include/libpng12 -LC:/MinGW/lib -lpng12」と表示されますが、これは正しいようです。私は愚かな間違いを犯していると確信していますが、それが何であるかはわかりません。

4

2 に答える 2

2

どうやらこれは既知の問題です。私がフォローしていたブログでも言及されていることを考えると、どうやってそれを見逃すことができたのかわかりません(3番目の提案を試して修正したことを考えると、これはWindows 7にも当てはまると想定しても安全だと思います問題):

それでは、MinGWをインストールしましょう。ファイルシステムの奇妙な制限のため、MinGW は Windows Vista ではスムーズに動作しないことに注意してください。回避策は

  • FAT ファイルシステムに MinGW をインストールするには、
  • セーフモードで作業する、または
  • よく動くと言われているMinGW Portableを使用する。

于 2010-02-12T21:44:15.487 に答える
2

「libpng12.dll.a」が小さすぎる (<1kb) ことに気付きました。

これは、libpng.vers のシンボルが正しくないためです (シンボル_の先頭に余分なものがあります)。libpng のビルド後、余分なファイルを削除_して手動で libpng12.dll.a を再作成しました。サイズは問題ありません。しかし... 正しいインポート ライブラリはあなた (そして私) の問題を解決しません。

于 2010-11-23T14:22:03.210 に答える