zlibをリンクするには?

解決


アル  2007-06-01 18:27:00  No: 65266

.Net2003のVisualC++を使っています。

奥村氏のページにあるサンプル(http://oku.edu.mie-u.ac.jp/~okumura/compression/comptest.c)を
元にzlibを使ったコマンドラインアプリをコンパイルしてみようとしたのですが、

comptest.obj : error LNK2019: 未解決の外部シンボル _deflateEnd が関数 _do_compress で参照されました。
というエラーが出てコンパイルできません。
おそらくzlibがリンクできてないと思うのですが、どのようにリンクすればいいのでしょう?

使用しているzlibは、1.2.3で、libファイルはzlibアーカイブの\contrib\vstudio\vc7のプロジェクトで作った
zlibstat.libを使っていて、このファイルはVC7のlibフォルダにコピーしているんですが、リンクしてくれないのです。
1.1.4などの説明では使っているlibファイルは、zlib.libとなっているので、これが原因でしょうか?
しかし、このファイルを生成する方法がわかりません。

よろしくお願いします。


Blue  2007-06-01 18:42:05  No: 65267

確認ですが、libはコピーしただけでしょうか?
プロジェクトの設定でリンクを通す、もしくは#pragmaでリンクを通してありますか?


アル  2007-06-01 23:11:19  No: 65268

プロジェクトの設定はよく判りませんでしたので、触ってませんが、

#pragma comment(lib, "zlibstat.lib")

は試してみました。ですが、エラーメッセージに変化ありませんでしたので、今は外してあります。


アル  2007-06-04 19:46:38  No: 65269

なんだか、自己解決しました。

どうやら、ランタイムライブラリとZlibのライブラリの種類?が違っていたようで、
プロジェクトのプロパティ|構成プロパティ|C/C++|コード生成のランタイムライブラリの項目と、
Zlibのライブラリをそれ用にあわせ、#pragmaによるリンク指示をすると、リンクエラーがでなくなりました。

ZlibについているプロジェクトファイルではVCのランタイムにあったライブラリが出来なかったので、
MASATOの開発日記さんからダウンロードしたプロジェクトファイルを使いました。

以上、ご報告まで


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加