困っています

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

困っています

#1

投稿記事 by FOX » 15年前

ソースにはミスがないのに、エラー(↓)がでてしまいます。

1>libjpeg.lib(jpegtran.obj) : error LNK2001: 外部シンボル "_jtransform_execute_transformation" は未解決です。
1>libjpeg.lib(jpegtran.obj) : error LNK2001: 外部シンボル "_jcopy_markers_execute" は未解決です。
1>libjpeg.lib(jpegtran.obj) : error LNK2001: 外部シンボル "_jtransform_adjust_parameters" は未解決です。
1>libjpeg.lib(jpegtran.obj) : error LNK2001: 外部シンボル "_jtransform_request_workspace" は未解決です。
1>libjpeg.lib(jpegtran.obj) : error LNK2001: 外部シンボル "_jcopy_markers_setup" は未解決です。
1>libjpeg.lib(jpegtran.obj) : error LNK2001: 外部シンボル "_write_stdout" は未解決です。
1>libjpeg.lib(jpegtran.obj) : error LNK2001: 外部シンボル "_read_stdin" は未解決です。
1>libjpeg.lib(jpegtran.obj) : error LNK2001: 外部シンボル "_read_scan_script" は未解決です。
1>libjpeg.lib(jpegtran.obj) : error LNK2001: 外部シンボル "_keymatch" は未解決です。
1>C:\Documents and Settings\takuma\My Documents\Visual Studio 2008\Projects\chap4\Release\chap4.exe : fatal error LNK1120: 外部参照 9 が未解決です。


Release構成でデバックしています。
見てのとおりVisualStudio 2008です。
初心者なので何のエラーなのかさっぱりわかりません;;。助けてもらえると光栄です。
どうかお願します。

softya

Re:困っています

#2

投稿記事 by softya » 15年前

これは、リンクのエラーですね。
Debugビルドが成功していてReleaseビルドに失敗したと言うことでしょうか?
Debugビルドで成功しているなら、ライブラリの設定がReleaseビルドでされていないだけではないでしょうか。オプションでリンクの再確認してみてください。
ちなみにMy Documentsの処に名前が見えてますので、気になるなら投稿の修正をおすすめします。

FOX

Re:困っています

#3

投稿記事 by FOX » 15年前

返答ありがとうございます^^
名前は本名と違うんで^^;大丈夫です。
Debugビルドもこれと同じエラーでビルド失敗するんですが・・・

Justy

Re:困っています

#4

投稿記事 by Justy » 15年前

 DXライブラリ環境ですか?
 リンカのサブシステムの項目が Windows (/SUBSYSTEM:WINDOWS)になっているか
確認してみて下さい。

softya

Re:困っています

#5

投稿記事 by softya » 15年前

標準ライブラリでもなく、WindowsAPIでもなく、DXライブラリでも無いライブラリが使われていますね。
使用しているソースコードの参考としたWEBサイトか書籍を教えてください。もし、使っているラブラリがわかるなら、その名前を教えてください。

Justy

Re:困っています

#6

投稿記事 by Justy » 15年前

>WEBサイトか書籍を
 勝手な推測ですが「C言語わくわくゲームプログラミング教室」が元のコードじゃないかと
思われます。
 検索したら出てきました。

ビルドエラーについて
http://hpcgi2.nifty.com/natupaji/bbs/pa ... st&no=1136


 DXライブラリ付属の libjpeg.libは jpegtran.cをリンクしている為 main関数を
内包するものになっています(多分ビルドミス)。

 それが原因でDXライブラリ使用時、付属のlibjpeg.libをそのまま使って
リンカの設定を間違えると、上記のようなシンボルのエラーが出ることがあるので、
それじゃないかな、と。

FOX

Re:困っています

#7

投稿記事 by FOX » 15年前

みなさん返答ありがとうございます。

>DXライブラリ環境ですか?
リンカのサブシステムの項目が Windows (/SUBSYSTEM:WINDOWS)になっているか確認してみて下さい。


すみません、初心者なので、確認方法がいまいちです。教えていただけると光栄です。

>標準ライブラリでもなく、WindowsAPIでもなく、DXライブラリでも無いライブラリが使われていますね。
使用しているソースコードの参考としたWEBサイトか書籍を教えてください。もし、使っているラブラリがわかるなら、その名前を教えてください。


Justy様の言う通り「C言語わくわくゲームプログラミング教室」という本からです。
ビルドエラーについて
http://hpcgi2.nifty.com/natupaji/bbs/pa ... st&no=1136
も参照しましたが、このHPの返答で、貼り付けていただいたエラー出力はプロジェクトの作成時に
「Win32 コンソール アプリケーション」を選択してしまった際に出力されるものです
「Win32 プロジェクト」を選択してプロジェクトを作成し直してみてください
( DXライブラリを使用したプログラムでは main 関数の代わりに WinMain という関数を使う Win32 アプリケーションとなります )


と記述してありましたが、
本書ではWin32 コンソールアプリケーションを選ぶようになっています。

>DXライブラリ付属の libjpeg.libは jpegtran.cをリンクしている為 main関数を
内包するものになっています(多分ビルドミス)。
 それが原因でDXライブラリ使用時、付属のlibjpeg.libをそのまま使って
リンカの設定を間違えると、上記のようなシンボルのエラーが出ることがあるので、
それじゃないかな、と。

う~ん・・難しくてよくわからないのですが、やっぱりリンカの設定がおかしいのかもしれません。
設定の仕方をおしえてくださいますか?

長々とすみません。読んで下さってありがとうございます。

FOX

Re:困っています

#8

投稿記事 by FOX » 15年前

皆さんすみません。
自己解決しました。
よくわからないのですが、プロジェクトをつくりなおし、
同じソースコードを書いて、
Release構成の文字セットをUnicodeからマルチバイト文字セットに、
Release構成のランタイムライブラリをマルチスレッドDLLからマルチスレッドに
設定を変更したところ、エラーひとつでませんでした。
なぜこれだけで直ったのか・・理解不能ですが、
皆さんに多大な迷惑をかけてしまったことを非常に後悔しております。
本当にすみませんでした。

また困ったことがおきるかもしれません。
そのときにまたよろしくお願いします。
お二方ありがとうございました。


閉鎖

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