web-dev-qa-db-ja.com

libjpegのコンパイル

Libjpegを一部のコンパイラに含めることに成功した人はいますか?私はすべてを試しました:Dev C++、VS10、CodeBlocks、ヘッダーとlibを手動でコピーし、リンカーで追加しましたが、何も追加しませんでした。現時点では、どのコンパイラでコンパイルするかに関する公式ガイドはないので、本当に納得しています。ライブラリーをどのコンパイラーでコンパイルするかについてのチュートリアルを誰かが提供できれば、本当にうれしいです。前もって感謝します。

27
NiVeR

WindowsでMinGWを使用してlibjpegを構築した方法を次に示します。

1. MSYSでMinGWを取得する

http://sourceforge.net/projects/mingw/ からコピーを入手しました。 www.mingw.orgからの引用:

MSYSは、bash、make、gawk、grepなどのGNUユーティリティのコレクションであり、従来のUNIXツールに依存するアプリケーションやプログラムの構築を可能にします。

Libjpegソースに付属するconfigureスクリプトを実行するために必要になります。


2. libjpegソースを入手する

http://www.ijg.org/ から、Unix形式のパッケージを使用します(Windowsはこの手順では動作しません)。 jpeg_8dバージョンを使用しました。


3.構築ディレクトリを準備する

D:\tmpという名前の一時ディレクトリを作成しましたが、必要に応じて任意のディレクトリを選択できます。重要なのは、MSYSのパスの名前です。 *Unixity*をWindowsにもたらすため、パスを元の形式で使用することはできません。手短に:

C:\path\to\fileはMSYSランドでは/c/path/to/fileになります。そのため、D:\tmp/d/tmpになります。

D:\tmpのlibjpegソースを解凍します。そのため、そこにjpeg-8dディレクトリがあります。

jpeg-build内にD:\tmpディレクトリを作成すると、ビルドされたライブラリが保持されます。

これで、すべてのビルドの準備が整いました。


4. ./configure、make、make install

それがUnixの土地での建物のマントラです。インストールプロセスをD:\tmp\jpeg-buildにリダイレクトするオプションを追加する必要があります。

MSYSシェル(Windowsの[スタート]メニューでMinGWシェルとも呼ばれます)で次のコマンドを実行します。

cd /d/tmp/jpeg-8d
./configure --prefix=/d/tmp/jpeg-build
make
make install

追加の手順として、安全のためにmake testを実行できます。

これらのコマンドは、libjpegの静的バージョンと共有バージョンの両方を構築します。


5.商品を受け取り、一時的なものを削除する

すべてが正常に実行される場合、D:\tmp\jpeg-8dディレクトリを削除できますが、jpeg-buildディレクトリは保持します。を含む:

  • libjpegヘッダーを含むincludeディレクトリ。これらをコンパイラのヘッダーディレクトリに移動できます。
  • libディレクトリ。リンカに渡す.aファイルが含まれます。それらをコンパイラのライブラリディレクトリに移動できます。
  • libjpeg共有ライブラリlibjpeg-8.dllおよびjpegツールを保持するbinディレクトリ。
  • jpegツールのshareページを含むmanディレクトリ。

これで、正しいインクルードパスとライブラリパスを指定して、プログラムをビルドし、libjpegにリンクできます。


ソースパッケージ内のinstall.txtでlibjpegのビルドとインストールプロセスに関する多くの詳細を見つけることができます。

これが役に立つことを願っています。

22
overcoder

Visual Studio 2012でlibjpeg 9をコンパイルするための手順は次のとおりです(アーカイブファイルを解凍した後)。

  1. ファイルWIN32.MAK(たとえば、 http://www.bvbcode.com/code/f2kivdrh-395674-down から)をダウンロードし、コピーをルートソースコードディレクトリ(おそらくC:\jpeg-9ですが、それを解凍した場所によって異なります)。今後、このディレクトリを%jpegsrc%と呼びます。このファイルを持つことは重要です。そうしないと、手順3でエラーが発生します。

  2. Visual Studioコマンドプロンプトで、%jpegsrc%を開きます。

    cd %jpegsrc%

  3. 同じコマンドプロンプトで、次を実行します。

    NMAKE /f makefile.vc setup-v10

    これにより、%jpegsrc%jpeg.slnおよびapps.slnに2つのVisual Studio 2010ソリューションが作成されます。

  4. Visual Studio 2012で各ソリューションを開きます。各ソリューションで、すべてのプロジェクトを2012形式に更新するように求められます。 「更新」をクリックします。一度行ったところ、プロンプトは表示されませんでした。その場合は、ソリューションエクスプローラーでjpegソリューションを右クリックし、[VC++プロジェクトの更新...]を選択して、同じプロンプトを生成します。

  5. 通常どおり各ソリューションを保存してビルドします。 (後者は前者に依存するため、jpeg.slnの前にapps.slnソリューションを構築する必要があります。)

注:このプロセスは、更新せずにVisual Studio 2010で正常に動作するはずですが、テストしていません。

更新:このメソッドは、libjpeg-9aのVisual Studio 2015でも引き続き機能します。

45

VS10でjpeg.libをビルドするのは本当に簡単です。

最初に、zip形式のlibjpegソースコードをダウンロードします。私がこれを書いているとき、あなたはそれを見つけることができます ここ

次に、Zipファイルの内容をディスクに抽出します。

次に、VS2010コマンドプロンプトシェルを開き(またはコマンドプロンプトウィンドウでvcvarsall.batを呼び出し)、jpegソースディレクトリ(上記のダウンロードのjpeg-8d)に移動して、次のように入力します。

nmake -f makefile.win setup-v10

これにより、2つのVS2010ソリューションと多数のプロジェクトファイルが生成されます。ソリューションは次のとおりです。

  • jpeg.sln、ビルドjpeg.lib
  • apps.sln、サンプルアプリケーションをビルドします。

幸運を!

16
Miguel

Visual Studio 2010がインストールされていない場合、Visual Studio 2017で機能するものは次のとおりです。

基本/一般的な手順:

  1. 次からlibjpegの最新バージョンをダウンロードします。 http://www.ijg.org/ (Zipバージョン)およびそれをフォルダーに抽出します。
  2. 「VS2017の開発者コマンドプロンプト」を開きます
  3. ディレクトリ(cd)をライブラリソースを抽出した場所に変更します

VS 2017アプローチ:

  1. 次のコマンドを実行して、Windows SDK v7.1Aディレクトリを含めます(後でnmakeでWin32.Makに必要):set INCLUDE=%INCLUDE%;c:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include

  2. nmake /f makefile.win setup-v15を実行します(VS2017のv15に注意してください)

ここから、実行中のVisual StudioバージョンにVisual Studio 2010ソリューションをアップグレードするために@AthanasiusOfAlexが説明した内容に従います。デバッグ構成が必要な場合は、@ SteveEngの説明に従ってください。

遭遇する可能性のあるエラー:

  • nmakeが失敗し、jconfig.hの作成方法がわからないと通知された場合、ファイルの名前を手動でjconfig.vcからjconfig.hに変更します。
  • nmakeが失敗し、Win32.Makが見つからないというメッセージが表示された場合は、手順4で説明したSDKディレクトリからlibjpegソースディレクトリに手動でコピーします。そのSDKバージョンがインストールされていない場合は、信頼できるリソースからファイルをダウンロードしてください。
  • nmakeが失敗し、setup-v15の作り方がわからない場合、setup-v10setup-v11などで始まる試行錯誤VSバージョンであり、VS 2008以降のVSバージョンがインストールされている限り、いずれかが機能するはずです。

これが同様の痛みを経験する人々の助けになることを願っています。

3
Vinz

MSVCでもデバッグモードが必要な場合。 AthanasiusOfAlexの方法に従い、リリースをビルドしてから、次の操作を行います。

  1. プロジェクトを右クリックして、一番下のプロパティを選択します
  2. 構成マネージャーをクリックし、アクティブなソリューション構成ドロップダウンで-new-を選択します
  3. 名前をデバッグに設定し、ドロップダウンでリリースから構成設定をコピーを選択し、[OK]をクリックします。
  4. ダイアログを閉じ、一般設定に移動し、ターゲット名の下に最後にdを追加して、次のようにします:$(ProjectName)d
  5. [プログラム全体の最適化]ドロップダウンで、[プログラム全体の最適化なし]を選択します。
  6. 次に、左側の構成プロパティの下にあるC/C++をクリックし、[デバッグ情報形式]ドロップダウンで[C7互換(/ Z7)]を選択します。
  7. 最適化の下で[無効]を選択し、[ファイバーセーフ最適化の有効化]と[プログラム全体の最適化]の両方で[いいえ]を選択します。
  8. プリプロセッサ、プリプロセッサの定義の下で、編集をクリックして次を使用します。WIN32_DEBUG DEBUG _LIB _CRT_SECURE_NO_WARNINGS
  9. コード生成の下で、ランタイムライブラリの下でマルチスレッドデバッグを選択DLL(/ MDd)

ビルドすれば完了です!

2
SteveEng