.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となっているので、これが原因でしょうか?
しかし、このファイルを生成する方法がわかりません。
よろしくお願いします。
確認ですが、libはコピーしただけでしょうか?
プロジェクトの設定でリンクを通す、もしくは#pragmaでリンクを通してありますか?
プロジェクトの設定はよく判りませんでしたので、触ってませんが、
#pragma comment(lib, "zlibstat.lib")
は試してみました。ですが、エラーメッセージに変化ありませんでしたので、今は外してあります。
なんだか、自己解決しました。
どうやら、ランタイムライブラリとZlibのライブラリの種類?が違っていたようで、
プロジェクトのプロパティ|構成プロパティ|C/C++|コード生成のランタイムライブラリの項目と、
Zlibのライブラリをそれ用にあわせ、#pragmaによるリンク指示をすると、リンクエラーがでなくなりました。
ZlibについているプロジェクトファイルではVCのランタイムにあったライブラリが出来なかったので、
MASATOの開発日記さんからダウンロードしたプロジェクトファイルを使いました。
以上、ご報告まで
ツイート | ![]() |