Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxについて >> Gentooをアップグレードした後、libpngが正常にコンパイルできない?

Gentooをアップグレードした後、libpngが正常にコンパイルできない?

  

Gentooをアップグレードした後でも、ユーザは通常どおりlibpngを使用できますGentooシステムをアップグレードした後、多くのユーザはlibpngのコンパイルに異常があります。次の小シリーズでは、libpngのコンパイルを解決する方法が普通ではない方法を紹介します。

あなたは、システムをアップグレードした後は、あなたがのlibpngをアップグレードするように要求され、保存され、再構築が、多くのパッケージが完全にコンパイル、しかし、および次の解決策@再出現する必要があります。

1、gnome-extra /libgdaがコンパイルに失敗しました

リンク時には、プロンプト-lpng14が見つかりませんでした。これは明らかにlibpngが1.5にアップグレードされたためです。ただし、libgda内のすべてのMakefileを検索した後、libpng14のダイナミックリンクライブラリにリンクする場所を見つける場所がありません。最後に見つかった理由は、依存関係を管理するためにlibtoolによって使用される/usr /lib64 /ディレクトリに多数のxxx.laファイルが存在するためですダイナミックリンクライブラリの中には、-lpng14という名前の依存関係を持つものがあります。

理由を見つけたら、最初にgrepコマンドでwrite-lpng14が書かれているすべての場所を見つけて、これらのライブラリーを再出現させます。しかし、いくつかのライブラリは再出現したことが判明し、依存関係はまだ修正されていませんでした。最後に、これらのファイルを手動で変更して、-lpng15に変更します。

再出現しても大丈夫です。

2、opencvコンパイラが失敗しました

opencvコンパイラが失敗しました、プロンプトはエラーです:‘ MAX_MEM_LEVEL’は、このスコープ内およびその他のエラーで宣言されていません。 libpng1.5.xは元のpngファイル構造を隠しているので、ヘッダファイルには事前宣言とtypedefの束が1つだけあります。これらは、これらのpng画像構造を定義するときにもともと依存していたzlibであるべきです。そして今、あなたはそれらを間接的に頼ることはできません。

解決策は、modules /highgui /src /grfmt_png.cppファイルにzlib.hヘッダーファイルを含めるように強制するパッチを作成することです。パッチの内容は次のとおりです。

- mdash; modules /highgui /src /grfmt_png.cpp.old 2011-09-19 19:36:49.759516862 +0800

+++モジュール/highgui /src /grfmt_png.cpp 2011-09-19 19:28:04.302185712 +0800

@@ -55,6 + 55,7 @@

#include "libpng /png.h"

#else

#include "png h》

+#include zlib.h

#endif

#include' grfmt_png.hpp'

ローカルportageを作成してコンパイルするOk opencv

wxPythonもありますが、これは実際には不可能です。libpng1.5.xはpngイメージ構造体を隠しているため、構造体ポインタエラーを介して構造体に直接アクセスすることになります。パッチ

上記はGentooのアップグレード後にlibpngをコンパイルできないという問題の解決策で、ユーザーの特定の状況に応じて問題を解決できる2種類の状況の解決策を紹介します。

Copyright © Windowsの知識 All Rights Reserved