2010-12-31 1 views
2

VC++プロジェクトでlibpngのようなオープンソースライブラリをいくつか使用しようとしています。私はLinux環境で問題なく使ってきましたが、VC++環境で動作させる方法についてはわかりません。ここに私が試したものです:VCとMinGWを使って作業する

  1. 私はSF(私もインストールところで、同じようにzlibは)からのWin32パッケージのためのlibpngをインストールしました。私はProgram Files \ GnuWin32 \ includeのpng.hを見ることができますが、インクルードするとコンパイラはunistd.hが必要だと言います。私はこれがPOSIXシステムコールのヘッダであることを知っていますので、Windowsはそれを持っていません。

  2. 私はCygwinをインストールしたのですが、後でそれgccを使用してWindows上でLinuxのソースコードをビルドするための唯一の良いことだ実現し、代わりにMS VC使用しての(または私は間違っているの?)

  3. を私はMinGWのをインストールし、それはMinGWのようですgccも使用するように設計されています(または間違っていますか?)。 MinGWにはunistd.hが付属していますが、このヘッダはMinGWのsys/types.hをlinuxから参照しています。MSVCには独自のsys/types.hがありますので、コンパイラはどちらを使うべきか分かりません。 2つのファイルは異なるものを定義し、どちらも両方をカバーすることはできないため、いずれかを含めて、プロジェクト全体をコンパイルするには不十分です。

これまでのところ、かなり愚かな#include問題のように思えるが、私は正しい方法を理解できない。私は本当に十字架からの騒ぎです。多分私は最初から間違った道を行くでしょう...

どうすればいいですか? VC++でのLinuxライブラリの標準的な使用方法は?

ところで、MinGWまたはCygwinを使ってgccをビルドしてWindows実行ファイルを生成することは可能ですが、私は既存のコードベースのためにVC++でビルドすることができます。何か助けてくれてありがとう!

答えて

0

明らかに、MS VCのlibpng.lib/dllとヘッダーファイルをダウンロードする必要があります。

パッケージにGnuWin32のようなフォルダ構造がある場合は、間違いなくMS VC用です。

OpenCVの分布(http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.2/)

をチェックアウトそれはのlibpngや他の画像フォーマットライブラリのVCのビルドが含まれています。

+0

おかげVCプロジェクトからのlibsとそれらとのリンクを受け取ります。私はこれが実行可能な解決策だと確信していますが、私が使用する各オープンソースのlibsに対して特定のWin32ビルドを探すのは面倒です。なぜ自分自身をソースコードから構築できないのですか?それはオープンソースの要点ではありませんか?私はもっ​​と一般的な解決策が必要であると確信しています... – fang

+0

典型的なオープンソースライブラリは、自動設定生成ツールを使用してMS VCをサポートしていないので、VC設定とヘッダファイルを生成する必要があります。行う。 – 9dan

+0

ええ、オープンソースコミュニティーでは、VCについて気にする人はほとんどいません。以前は、ほとんどのオープンソースプロジェクトがプラットフォームに依存しないと思っていましたが、そうではありませんでした。 – fang

0

一般的な解決策は、(重要ではありません、CygwinのかMinGWの)GCCによってこのようなライブラリーを構築することです

+0

ありがとうございます。しかし、私はその仕事をすることができませんでした。私はCygwinでビルドすることができますが、ヘッダーはunistd.hのようなlinux固有のものを参照するので、VCでは使用できません。何か不足していますか? – fang

+0

MinGW/include/unistd.hこれをあなたの検索ディレクトリに加えてください。 –

+0

私はそれを試みましたが、元の投稿で説明したように、sys/types.hのウィンドウのヘッダーと衝突します。基本的にどちらもsys/types.hを定義し、どちらも他の環境では動作しません。私はそれをコンパイルするために何をすべきかわかりません。 – fang

関連する問題