BCC Developerでlibjpegを使用

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
HIRO

BCC Developerでlibjpegを使用

#1

投稿記事 by HIRO » 14年前

BCC Developerにてlibjpegをコンソールアプリケーションで使おうとしています
調べながら以下のような手順で進めたのですが、力尽きてしまいました

libjpegのzipをダウンロードしてきて解凍(jpeg-8cを確認)
コマンドプロンプトからライブラリをnmakeでビルド
(ビルドに必要なvsvars32.batとWin32.makはインストールしてあったMicrosoft Visual Studio 9.0に入っていたものを使用)
libjpeg.lib jpeglib.h jerror.h jconfig.h jmorecfg.hをBCCDで作っておいたプロジェクトにコピー
プロジェクト設定→リンクでlibjpeg.libをライブラリファイルに指定
#include"jpeglib.h"といった形で
それ以外のヘッダファイルをプロジェクトに追加
メイクしてみるとエラー

Error: 'C:\~\LIBJPEG.LIB' contains invalid OMF record, type 0x21 (possibly COFF)

調べてみるとVC向けの.libはBCCで使えないということなので、BCCに入っていたcoff2omf.exeでBCC向けに変換
変換した.libを入れてライブラリファイルに指定
メイクしてみると別のエラー

Error: 外部シンボル '_jpeg_std_error' が未解決(C:\~\DEBUG\MAIN.OBJ が参照)
Error: 外部シンボル '_jpeg_CreateDecompress' が未解決(C:\~\DEBUG\MAIN.OBJ が参照)
Error: 外部シンボル '_jpeg_stdio_src' が未解決(C:\~\DEBUG\MAIN.OBJ が参照)
Error: 外部シンボル '_jpeg_read_header' が未解決(C:\~\DEBUG\MAIN.OBJ が参照)
Error: 外部シンボル '_jpeg_start_decompress' が未解決(C:\~\DEBUG\MAIN.OBJ が参照)
Error: 外部シンボル '_jpeg_read_scanlines' が未解決(C:\~\DEBUG\MAIN.OBJ が参照)
Error: 外部シンボル '_jpeg_finish_decompress' が未解決(C:\~\DEBUG\MAIN.OBJ が参照)
Error: 外部シンボル '_jpeg_destroy_decompress' が未解決(C:\~\DEBUG\MAIN.OBJ が参照)

すべてlibjpegの関数なので変換したライブラリに問題があるということだと思います
プログラムは(ttp://www.syuhitu.org/other/jpeg/jpeg.html)様のjpeg_prog03.cをmain.cにコピーして使わせていただいているので問題ないはずです

気になるのは変換前に266,636バイトあったライブラリが、変換後は512バイトと凄まじく小さくなっている点です
ここからどのようにアプローチして問題を解決していけばいいのか、わからなくなっています
知恵を貸していただけると助かります

beatle
記事: 1281
登録日時: 14年前
住所: 埼玉
連絡を取る:

Re: BCC Developerでlibjpegを使用

#2

投稿記事 by beatle » 14年前

http://oshiete.goo.ne.jp/qa/2991859.html
が参考になりそうです。

beatle
記事: 1281
登録日時: 14年前
住所: 埼玉
連絡を取る:

Re: BCC Developerでlibjpegを使用

#3

投稿記事 by beatle » 14年前

HIRO さんが書きました:気になるのは変換前に266,636バイトあったライブラリが、変換後は512バイトと凄まじく小さくなっている点です
この文を見逃していました。
これは明らかに変換後のライブラリはダメなライブラリになっています。変換がミスっていると思うのですが、真相は分かりません。
http://book.mycom.co.jp/support/bookmook/opencv/ さんが書きました: Borland C++ Compilerのツール「coff2omf」で「C:\Program Files\OpenCV\lib」のlibファイルをすべてBorland 用のlibファイルに変換します。上書きはできないので別なフォルダに生成してから置き換える必要があります
とありますが、もしかして
coff2omf C:\~\LIBJPEG.LIB C:\~\LIBJPEG.LIB
などとやっていませんか?

ARCS

Re: BCC Developerでlibjpegを使用

#4

投稿記事 by ARCS » 14年前

coff2omfはDLLをリンクするためのインポートライブラリを変換するもので、スタティックライブラリには対応していません。
ですので、なんとかしてBCCでスタティックライブラリを作成するか、DLLを利用するかのどっちかじゃないでしょうか。

閉鎖

“C言語何でも質問掲示板” へ戻る