• 締切済み

C++Builder  リンカエラーとは?

はじめまして。プログラム超初心者です。 C++Builderを用いてプログラムを作成したのですが『リンカエラー』というものがでてコンパイルできません。 これはどういうことなのでしょうか?また、解決策にはどのようなものがありますでしょうか? よろしくお願いします。

みんなの回答

回答No.5

No.3 です。 > ボードに関連したソフトはインストールしていません。VC++ではコンパイルできるんですが・・・ VC++ でコンパイル(多分リンクも)できていると言うことは、メーカーのサイトから、セットアップツールをダウンロードしてきて、それを実行して、そのときにできる、VC++ のサンプルプログラムが存在していると言うことでしょうか。 その状態であれば、最低限のボード関連ソフトのインストールは終わっています。 C++Builder でも、 #include <FbiDio.h> という行が指定してあって、なおかつ、そこでエラーが出ていなければ、ボード関連ソフトのインストールはできています。 ただ、VC++ のサンプルは、メーカーが準備したライブラリである、FbiDio.lib を使うように設定されているので、リンクも問題なくできるわけです。 C++ Builder で使うためには、FbiDio.dll から、C++ Builder 用のライブラリファイルを作って、それをプロジェクトに登録しなければなりません。 このあたり、 C:\Program Files\Interface\GPC2000\README.HTM の、「11. 使用上の注意事項 」の中にも書いてあるようです。 これが、implib を使って云々と言うところです。 > すいません。こういったファイルはないのですが・・・・その場合、自分で作るのでしょうか? これがこちらでも不明です。 セットアップツールについてきた、ユーティリティソフトは実行できますか?(スタートメニューから、プログラム→inferface GPC-2000 とたどってみてください) 実行できるのなら、どこかに、FbiDio.dll があるはずです。 これは、セットアップツールか、ドライバかのインストール時に作られるはずなので、なければ、メーカーにヘルプをお願いすることになると思います。

kazuo7777
質問者

お礼

親身になって相談に乗っていただき感謝します! 少ない情報からこれだけのことを答えていただけるとはおもいませんでした。専門家の方でしょうか?流石ですね! 私も頑張ってみます。どうもありがとうございました。

  • Rulurulu
  • ベストアンサー率47% (8/17)
回答No.4

>すいません。ライブラリすらわからない初心者なんです。 >もしよければ、お勧めのHPなど教えていただけないのでしょうか? C++Builderの質問であればここのHPがお勧めです。 国内では、一番活発なForumだと思います。 C++Builder初心者の木(質問の木) http://gimite.ddo.jp/bcbqtree/qtreemain.cgi

参考URL:
http://gimite.ddo.jp/bcbqtree/qtreemain.cgi
kazuo7777
質問者

お礼

どうもありがとうございます。そのサイト、参考にさせていただきます。

回答No.3

DioOutputPoint を見てみると、 interface 社の DIO ボードがらみでしょうか。 だとすると、ちょっと面倒なところがあります。 まず、リンカエラーだと言うことは、コンパイラ自体は通ったと考えて良いのですね。つまり、 #include <FbiDio.h> のような行があって、そこでエラーは出ていないと。つまり、ボード関連ソフトのインストールは終わっていると判断できます。 次の段階として、多分、c:\winnt\system32 か、c:\windows\sytem32 に、FBIDIO.DLL というファイルがあるはずです。これを、ソースファイルのあるフォルダにコピーしてきてください。 次に、コマンドプロンプトを起動して、なんとかして、ソースのあるフォルダに移動してください。 そこで、 implib fbidio.lib fbidio.dll と入力します。 これで、fbidio.lib というファイルが生成されます。 この後、C++ Builder の、表示 → プロジェクトマネージャー で、プロジェクトマネージャーを表示します。 ここで、ファイルの「追加」を選び、(ここで、ライブラリ(lib)を選択できるようにする)先ほど作った、fbidio.lib を追加します。 ※試しにやってみたら、fbidio.dll がどこにもなかったのが謎ですが、メーカーのマニュアルによれば、system32 のフォルダにできることになっていますね。 ※あと、メーカーが添付している fbidio.lib は C++ Builder では使えません。 これで、再度コンパイル(とリンク)を行えば良いのですが。 結構大変です。

kazuo7777
質問者

補足

丁寧にご回答くださいましてありがとうございます。わからない点がありますので補足させてください。 >ボード関連ソフトのインストールは終わっていると判断できます。 ボードに関連したソフトはインストールしていません。VC++ではコンパイルできるんですが・・・ >多分、c:\winnt\system32 か、c:\windows\sytem32 に、FBIDIO.DLL というファイルがあるはずです すいません。こういったファイルはないのですが・・・・その場合、自分で作るのでしょうか?

回答No.2

> 外部シンボル 'DioOutputPoint' が未解決 DioOutputPointを呼んでいる箇所があるけど、DioOutputPointが存在しないので実行形式が生成できない。と言うてます。 ほとんどの場合、ライブラリをリンクするのを忘れています。

kazuo7777
質問者

補足

ご回答ありがとうございます! すいません。ライブラリすらわからない初心者なんです。 もしよければ、お勧めのHPなど教えていただけないのでしょうか?

  • crew21
  • ベストアンサー率26% (58/222)
回答No.1

どういう内容のリンクエラーか書かなきゃわかるわけないでしょ。 あなたいつも他人にこんな訊き方してんの?

kazuo7777
質問者

お礼

申し訳ございません。ご指摘ありがとうございます。リンカエラーといってもいろいろあるのですね!? [リンカ エラー] 外部シンボル 'DioOutputPoint' が未解決(C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\UNIT1.OBJ が参照) このような文字が出てきます。'DioOutputPoint'に何か問題があるということでしょうか?

関連するQ&A