• 締切済み

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

  • C++Builder6 + DirectX8 でリンカエラー

    Borland C++Builder6 + DirectX8.1 を使用して DVD を操作するアプリケーションを作成しています。 その中で、IDvdInfo2、及び IDvdControl2 インターフェイスがリンカエラーで使用できません。 エラーの内容は、 [リンカ エラー] 外部シンボル '_IID_IDvdInfo2' が未解決(DVDMAIN.OBJ が参照) [リンカ エラー] 外部シンボル '_IID_IDvdControl2' が未解決(DVDMAIN.OBJ が参照) です。 コードは、 IDvdInfo2 *m_pIDvdI2; m_pIDvdGB->GetDvdInterface(IID_IDvdInfo2, reinterpret_cast<void**>(&m_pIDvdI2)); の様に、SDK のサンプルとまったく同じです。 ライブラリは、 quartz.lib、amstrmid.lib、strmiids.lib の3つをリンクしています。 これらは、coff2omf.exe や implib.exe でコンバートしたりしてみましたが、うまくいきませんでした。 どなたかご存じでしたら、教えて下さい。お願いします。

  • リンカ 致命的エラーについて

    C++builder6 pro/WIndowsXP home editionの環境でWin用アプリを作成しています プログラムを修正(コードのみ修正)しているうちに以下メッセージが出てしまいました。 各ユニットごとにコンパイルは無事通っています。 「C0W2」という名前は心当たりありませんし、プロジェクト-オプションのライブラリパスも確認してみましたが異常は分かりませんでした。 どなたかヒントだけでもご教授いただけないでしょうか。 <エラーメッセージ> [リンカ 致命的エラー] Fatal: ファイル C0W2.OBJ が開けません 宜しくお願いします。

  • linker errorについて

    Dev-C++というのを使ってます。参考書からコピーしたプログラムをコンパイルしたら、Linker error undefined reference to.....とエラーが出てしまいます。ポリモフィズムや、ポインタをプログラムのなかにつかっているのですが、コードは間違っていないし、どこを直していいのかわかりません。回答お願いします。

  • c++Builder ver6.0のパッケージエラー

    コンパイル実行できたc++Builderプログラムを USBメモリーに保存し自宅のパソコンで 実行させたところ とくに複雑でもないプログラムなのに --------------- コンパイル [リンカ 致命的エラー] Fatal: ファイル DCLUSR.BPI が開けません といったヘンなエラーが発生します. メニューバーのプロジェクトのオプション のパッケージ ダグの パッケージ再構築 の中のDCLUSRをいちいち削除しないと 実行ができません。 何かよい方法はないものでしょうか・

  • C++Builder XEのコンパイル&実行

    以前C++ Builder5で作成していたプログラム(プロジェクト)を、C++ Builder XEで使うことになり、XEでコンパイルを行った時に出るエラーは全部直し、実行しようと思ったのですが、「コンパイル成功」と出た後に実行画面が出ません。 「実行」を押したときに、コンパイル成功で実行画面が出ない理由には、どのような原因が考えられるのでしょうか? 思い当たる原因があったら、ぜひ教えてください。

  • Borland C++ Builderで簡単なC言語プログラムの作成・実行

    Borland C++ Builderで簡単なCのプログラムを作り実行させるにはどうしたらよいですか? DOS窓上でコンパイルするのではなく、Borland C++ Builderのメニューから行いたいのです。 一応、「ファイル→新規作成→その他→Cファイル」でCのファイルは作成できるのですが、このファイルを「プロジェクト→ユニットのコンパイル」でコンパイルすることができません。 Formオブジェクト(?)を作成しておくとコンパイルできます。 Formは特に必要ないので、FormなしでCのファイルだけをコンパイルしたいのです。 DOS窓でのコンパイル・実行はできます。 事情があってBorland C++ Builderを使わなくてはなりませんので、他のIDEはこの際全く解決になりません。 よろしくお願いします。

  • C++Builder XE とOpenCV

    長年C++Builderでプログラムを書いていますが、いつも全体をコピーして必要な所を変更しているので、開発環境の作成には自信の無い者です。 背景 昨年来、OpenCVとDirect-Xでカメラと画像のプログラムを開発していました。 今年2月にC++ Builder V5 とOpenCV V1.0 Direct-X9 で目的の動作をするものが完成しました。 W.2000とW.XPが対象ならばこれで良いのですが、世の中のOSがW.7に移っており、古いOSのPCの販売も無くなって来ている所から、W.7への乗せ替えを計画しました。 なお、OpenCV V1.0を使用しているのは、OpenCVでの開発開始当時、V2も試したのですが、V1.0でしかうまくコンパイル出来なかった為です。 問題点 新しい開発環境はOS W.7にC++Builder XEを搭載しました。 Builder V5に比べ、XEは文字コードがUniCodeに成っている等、文法エラーが多発していましたが、やっと文法エラーが無くなり、コンパイルが終了しました。 ここで実行させようとした所、cvhaartraining.dll がありませんとのメッセージが表示されてしまいました。 このメッセージはW.XP と C++Builder V5でコンパイル、実行させた時には出なかったものです。 更に、ダウンロードしたOpenCV1.0にはcvhaartraining.dllが含まれて居ませんでした。 ただ、cvhaartraining.cpp、cvhaartraining.lib 、cvhaartraining.h は含まれていました。 ネットでcvhaartraining.dllを検索して見ましたが、見つかりませんでした。 そこで、cvhaartraining.cpp、cvhaartraining.lib 、cvhaartraining.h があるのですから、これからDLLを作るか、プログラムが動作すれば良いのですから、プログラムに組み込んだり出来ないでしょうか。 先に述べた様に、開発環境やプログラム構造を変えた経験は殆ど無いのですが、この問題の解決策があれば挑戦して見たいと思って降ります。 解決策お分かりに成る方が居られましたら宜しくお教え下さい。

  • C++ Builder6 をふたたび動かしたい

    数年前まで C++ Builder6を使ってコマンドラインプログラムを作っていました。 久しぶりに使おうとすると、以下のエラーメッセージがでて新規プログラムが作れません。再インストールをしても同じです。 C++ 5.5 がフリーで出ているようなんですが、元のプログラムが複数あって、Builderの環境で使いたいと思うのです。 すでにボーランド社はありません。 どのようにすれば解決できるのかわかれば教えてください。よろしくお願いします。 C:\Program Files\Borland\CBuilder6\bin\bcb.$$$ から C:\Program Files\Borland\CBuilder6\bin\bcb.droに変更できません。

  • リンカーエラー

    質問させて頂きます。 windows XP mysql5.1 win devC++ の環境で、 http://ameblo.jp/nana-2007-july/entry-10086686152.html のサイトにそって、CからMYSQLに接続をしようと コンパイルすると、リンカーエラー main.o(.text+0x132) In function `main': [Linker error] undefined reference to `mysql_free_result@4' [Linker error] undefined reference to `mysql_real_connect@32' : : main.o(.text+0x132) ld returned 1 exit status Makefile.win [Build Error] [project1.exe] Error 1 とエラーがでています。 ご教授よろしくお願いします。

  • C++Builderについて

    コンパイルをかけると[リンカ致命的エラー]Fatal:ファイルVCLE40.LIBが開けませんというエラーが出てしまいます。どうすればエラーがでなくなりますか? 回答宜しくお願いします。