「これはヤバかったな」という遅刻エピソード

はじめまして。プログラム超初心者です。

C++Builderを用いてプログラムを作成したのですが『リンカエラー』というものがでてコンパイルできません。

これはどういうことなのでしょうか?また、解決策にはどのようなものがありますでしょうか?

よろしくお願いします。

A 回答 (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 があるはずです。
これは、セットアップツールか、ドライバかのインストール時に作られるはずなので、なければ、メーカーにヘルプをお願いすることになると思います。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/11/15 17:17

>すいません。

ライブラリすらわからない初心者なんです。
>もしよければ、お勧めのHPなど教えていただけないのでしょうか?

C++Builderの質問であればここのHPがお勧めです。
国内では、一番活発なForumだと思います。

C++Builder初心者の木(質問の木)
http://gimite.ddo.jp/bcbqtree/qtreemain.cgi

参考URL:http://gimite.ddo.jp/bcbqtree/qtreemain.cgi
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/11/15 17:13

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 では使えません。

これで、再度コンパイル(とリンク)を行えば良いのですが。

結構大変です。

この回答への補足

丁寧にご回答くださいましてありがとうございます。わからない点がありますので補足させてください。

>ボード関連ソフトのインストールは終わっていると判断できます。

ボードに関連したソフトはインストールしていません。VC++ではコンパイルできるんですが・・・


>多分、c:\winnt\system32 か、c:\windows\sytem32 に、FBIDIO.DLL というファイルがあるはずです

すいません。こういったファイルはないのですが・・・・その場合、自分で作るのでしょうか?

補足日時:2006/11/15 12:00
    • good
    • 0

> 外部シンボル 'DioOutputPoint' が未解決


DioOutputPointを呼んでいる箇所があるけど、DioOutputPointが存在しないので実行形式が生成できない。と言うてます。

ほとんどの場合、ライブラリをリンクするのを忘れています。

この回答への補足

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

補足日時:2006/11/14 18:16
    • good
    • 0

どういう内容のリンクエラーか書かなきゃわかるわけないでしょ。



あなたいつも他人にこんな訊き方してんの?
    • good
    • 0
この回答へのお礼

申し訳ございません。ご指摘ありがとうございます。リンカエラーといってもいろいろあるのですね!?

[リンカ エラー] 外部シンボル 'DioOutputPoint' が未解決(C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\UNIT1.OBJ が参照)

このような文字が出てきます。'DioOutputPoint'に何か問題があるということでしょうか?

お礼日時:2006/11/14 16:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報