「オープンソースのビルド zlib」の版間の差分

提供:yonewiki
(ページの作成:「言語と開発環境に戻る。 == '''概要''' ==  zlibは[https://www.zlib.net/ https://www.zlib.net/]で配布されてるオープンソースソフトウェアです。  zlibは無料で、汎用で、法的に妨げられないものだということです。いかなる特許にもカバーされていない技術を使用しています。  事実上すべてのコンピュータハードウェアで…」)
 
 
(同じ利用者による、間の7版が非表示)
1行目: 1行目:
<yjavascript></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/styles/vs2015.css">
<link rel="stylesheet" href="https://wiki.yo-net.jp/custom.css">
<script src="https://wiki.yo-net.jp/highlight/highlight.js"></script>
<script src="https://wiki.yo-net.jp/custom.js"></script>
<script></yjavascript>
[[メインページ#言語と開発環境|言語と開発環境]]に戻る。
[[メインページ#言語と開発環境|言語と開発環境]]に戻る。
== '''概要''' ==
== '''概要''' ==
10行目: 16行目:




 GIF画像形式では、現在zlibで使用されている圧縮方法で基本的にデータを拡張することはありません。(LZWはファイルサイズを 2倍または3倍にすることができます。極端な場合。zlibのメモリフットプリントも入力データとは無関係です。必要に応じて、圧縮にある程度のコストをかけて削減できます。
 GIF画像形式は、現在zlibで使用されている圧縮方法で基本的にデータを拡張することはありません。(LZWはファイルサイズを 2倍または3倍にすることができます。極端な場合。zlibのメモリフットプリントも入力データとは無関係です。必要に応じて、圧縮にある程度のコストをかけて削減できます。)




25行目: 31行目:




 つまり、圧縮解答プログラムの基礎となるソフトウェアなのです。
 つまり、圧縮解凍プログラムの基礎となるソフトウェアなのです。


 
 
36行目: 42行目:




 Makefileの処理が終わったら、ビルドからインストールを選択して実行します。その後、フォルダを閉じて、次に以下のソリューションを開きます。
 Makefileの処理が終わったら、ビルドからインストールを選択して実行します。(zlibのパス)\out\install\x64-Debug\includeの下のzconf.hを(zlibのパス)の直下にコピーします。その後、フォルダを閉じて、次に以下のソリューションを開きます。




*zlib-1.3.1\contrib\vstudio\vc17\zlibvc.sln
* (zlibのパス) \zlib-1.3.1\contrib\vstudio\vc17\zlibvc.sln




45行目: 51行目:




*zlib-1.3.1\contrib\vstudio\vc17\zlibvc.defというファイルについて
* (zlibのパス) \zlib-1.3.1\contrib\vstudio\vc17\zlibvc.defというファイルについて




51行目: 57行目:




VERSION 1.3.1
<yjavascript></script>
<!--
data-line-num-start="1"
data-line-highlight="3, 10-"
data-max-lines="10"
code class="language-cmake"
-->
<div class="hljs-wrap"><pre data-label="zlibvc.def" data-line-num-start="4" class="pre-wrap">
<code>VERSION 1.3.1</code></pre></div>
<script></yjavascript>




57行目: 72行目:




VERSION 1.31
<yjavascript></script>
<!--
data-line-num-start="1"
data-line-highlight="3, 10-"
data-max-lines="10"
code class="language-cmake"
-->
<div class="hljs-wrap"><pre data-label="zlibvc.def" data-line-num-start="4" class="pre-wrap">
<code>VERSION 1.31</code></pre></div>
<script></yjavascript>




とします。そして、再度、ソリューションをビルドすると正常にビルドが完了します。
とします。そして、再度、ソリューションをビルドすると正常にビルドが完了します。defファイルはモジュール定義ファイルで、VERSIONの記述形式がX.XXという形式にするという決まりになっているためzlibがバージョン管理に使っているx.x.xというパターンではエラーになるということみたいです。zlibの管理人はあまりvcの仕組みについては熟知していないか、その互換性に関心がないのかもしれません。それでもちょっと修正するだけで、モジュール定義ファイルがそのままVCで使えるだけありがたいと思った方がいいですね。





2025年9月20日 (土) 11:52時点における最新版

言語と開発環境に戻る。

概要

 zlibはhttps://www.zlib.net/で配布されてるオープンソースソフトウェアです。


 zlibは無料で、汎用で、法的に妨げられないものだということです。いかなる特許にもカバーされていない技術を使用しています。


 事実上すべてのコンピュータハードウェアで使用できる可逆データ圧縮ライブラリです。zlibデータ形式自体は各オペレーティングシステムに移植可能です。Unix圧縮で使用されるLZW圧縮方法とは異なります。


 GIF画像形式は、現在zlibで使用されている圧縮方法で基本的にデータを拡張することはありません。(LZWはファイルサイズを 2倍または3倍にすることができます。極端な場合。zlibのメモリフットプリントも入力データとは無関係です。必要に応じて、圧縮にある程度のコストをかけて削減できます。)


 zlibはJean-loup Gailly(ジーン ロアップ ゲイリー氏)の圧縮機能とMark Adler(マーク アドラー)の解凍機能によって構成されています。


 Jean-loup(ジーン ロアップ)はかの有名なgzipの主作者でもあり、comp.compression FAQリストの作者でもあります。Info-ZIP のZipの元メンテナーです。


 Mark(マーク)はgzipとUnZip のメインの作者でもあります。解凍ルーチンであり、Zip の元作者でした。


 zlibで使用される圧縮アルゴリズムは、基本的にgzip と Zip、つまりPKWAREのPKZIP 2.xに由来する「deflate」メソッドです。


 つまり、圧縮解凍プログラムの基礎となるソフトウェアなのです。

 

VisualStudio2022でのビルド手順

 まずは、上記リンクにあるサイトからzlib131.zipをダウンロードします。バージョン1.3.1は2025年9月中旬時点の最新版でした。


 解凍して、Visual Studioを起動して、フォルダを開くから解凍して生成されたzlib-1.3.1フォルダを開きます。


 Makefileの処理が終わったら、ビルドからインストールを選択して実行します。(zlibのパス)\out\install\x64-Debug\includeの下のzconf.hを(zlibのパス)の直下にコピーします。その後、フォルダを閉じて、次に以下のソリューションを開きます。


  • (zlibのパス) \zlib-1.3.1\contrib\vstudio\vc17\zlibvc.sln


 プロジェクトを開いたら、まずはソリューションをビルドしてみましょう。エラーが表示されます。


  • (zlibのパス) \zlib-1.3.1\contrib\vstudio\vc17\zlibvc.defというファイルについて


 LNK1118: 'VERSION' ステートメントに構文エラーがあります。というエラーになります。このエラーをダブルクリックするとzlibvc.defが開きます。


VERSION		1.3.1


とある行を、


VERSION		1.31


とします。そして、再度、ソリューションをビルドすると正常にビルドが完了します。defファイルはモジュール定義ファイルで、VERSIONの記述形式がX.XXという形式にするという決まりになっているためzlibがバージョン管理に使っているx.x.xというパターンではエラーになるということみたいです。zlibの管理人はあまりvcの仕組みについては熟知していないか、その互換性に関心がないのかもしれません。それでもちょっと修正するだけで、モジュール定義ファイルがそのままVCで使えるだけありがたいと思った方がいいですね。


コンプリート!おめでとう!

 

言語と開発環境に戻る。