• ベストアンサー

linker errorについて

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

質問者が選んだベストアンサー

  • ベストアンサー
  • jacta
  • ベストアンサー率26% (845/3158)
回答No.3

ライブラリが指定されていないか、関数または非局所オブジェクトが宣言だけで定義がないかのいずれかが原因かと思います。 これ以上、具体的なことが分かるためにも、エラーメッセージの全部を補足してください。

tenagaru
質問者

補足

色々なプログラムを試してみたらヘッダーファイルがあるときに発生すると思います。ヘッダーファイルをどこかに登録する必要があるのですか?

その他の回答 (3)

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.4

質問者さんは外国の方でしょうか? どうも日本語が通じていないようなので、もっと易しい表現で補足要求します。 > Linker error undefined reference to.....とエラーが出てしまいます。 .....の部分を省略せずに「全部」書いてください。

tenagaru
質問者

お礼

DEV C++で、私と同じ問題に合っている人などを参考にしたのですが、よく分からなく、Visual C++を使うことにし、やってみたら動きました。どうもすみません。ありがとうございます。

tenagaru
質問者

補足

すいません。補足してという所見過ごしてました。 スーパークラスをコンパイルした時は [Linker error] undefined reference to `WinMain@16' と一つだけ、エラーがでて。他にサブクラス3つとメインが一つあるのですが、それはそれぞれ、 [Linker error] undefined reference to `Contact::Contact(std::string const&, std::string const&, int const&, std::string const&, std::string const&)' 、 [Linker error] undefined reference to `Contact::print() const' 、[Linker error] undefined reference to `WinMain@16'などなど、5箇所メインプログラムには7箇所エラーがでます。 それぞれのクラスには別にヘッダーを作ってあります。他のプログラムをコンパイルした時、ヘッダーのあるものはやはりこのエラーが出てしまいます。私の何かコンパイルの仕方とか違うのかと思い。プロジェクトファイルを作ってから全てを保存したほうがいいのですかね?

  • phoenix343
  • ベストアンサー率15% (296/1946)
回答No.2

リンカエラーならコンパイルは済んでいるのでソース上では問題ないはずですね。 ライブラリが指定されていないだけでは?いずれにしろ、そのエラーの全文を載せていないのでこれ以上の回答は得られないと思います。ここよりかDevC++関係の掲示板に質問するべきかと思いますが。

  • suseimei
  • ベストアンサー率35% (17/48)
回答No.1

出ているのはリンクエラーですから、コンパイルは無事に済んでいます。ということは、必要なライブラリファイルを追加してみるとよいのではないでしょうか? 参考書に必要なライブラリファイルが明記されていませんか?

tenagaru
質問者

補足

付属にCDがついてるんですけど、そこにはやはりそのようなものがついてないような。ライブラリファイルって重にどのようなものが含まれてるんですか?

関連するQ&A

  • リンカーエラー

    質問させて頂きます。 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  リンカエラーとは?

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

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

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

  • Windowsコモンコントロールのcygwin/gccコンパイルエラー

    以下のサイトのようなWindowsコモンコントロールのプログラムをcygwin/gccコンパイルするとエラーがでます。 (sourceのサイト) http://wisdom.sakura.ne.jp/system/winapi/common/common16.html (ビルドコマンド) gcc -mwindows -mno-cygwin -o main.exe main.cpp (エラー出力) undefined reference to `_ImageList_Destroy@4' undefined reference to `_InitCommonControls@0' undefined reference to `_ImageList_Create@20' undefined reference to `_ImageList_ReplaceIcon@12' undefined reference to `_ImageList_ReplaceIcon@12' collect2: ld returned 1 exit status make: *** [main.exe] Error 1 Windowsコモンコントロールを含んだプログラムをcygwin/gccコンパイルするにはどうすればよいでしょうか? コンパイルは出来ないのでしょうか? よろしくお願いします。

  • リンカのエラー

    SH-7144Fマイコンの開発をしています。 リンカで以下のようなエラーが出て困っています。 L2310 (E) Undefined external symbol "_set_imask_ccr" referenced in "C:\Users\***\Desktop\***\***\Debug\isac.obj" machine.hはincludeしていますし、何が原因かわかりません。 IDEはHEW4を使用しています。 何方かお願いします。

  • c言語 コンパイルエラー

    以下webページに載っているC言語のプログラムをコンパイルした時に ”/tmp/cchzThVk.o: In function 'c_to_sh': 5.c:(.text+0x5b3): undefined reference to 'sqrt' 5.c:(.text+0x64e): undefined reference to 'atan2' collect2: Id は ステータス1で終了しました。” とメッセージが出るのですが、このメッセージが出たときはプログラムにミスがあるということなのでしょうか。教えてくださいお願いします。 http://plaza.rakuten.co.jp/dragonkkk

  • C言語プログラムの質問なんですが、エラーが出てコンパイルできません。

    C言語プログラムの質問なんですが、エラーが出てコンパイルできません。 エラーメッセージ /tmp/ccGHoP41.o: In function `main': step1-7.c:(.text+0x39): undefined reference to `stringStdin' collect2: ld returned 1 exit status 何が間違ってるのか全くわからない状態です。 どなたかアドバイスお願いします!

  • コンパイル時のエラー

    UNIXでサーバー、クライアントのCプログラミングをテキストどおりに書いてコンパイルしたのですが、以下のエラーが出ます。gcc, ccでコンパイルすると以下のようになるのですが、これはどういうことなのでしょうか?何が原因なのでしょうか?よろしくお願いいたします。 gcc unix_server.c /var/tmp/ccvpay1f1.o: In function `main': /var/tmp/ccvpay1f1.o(.text+0x8c): undefined reference to `socket' /var/tmp/ccvpay1f1.o(.text+0x104): undefined reference to `unllnk' /var/tmp/ccvpay1f1.o(.text+0x118): undefined reference to `bind' /var/tmp/ccvpay1f1.o(.text+0x150): undefined reference to `listen' /var/tmp/ccvpay1f1.o(.text+0x1a8): undefined reference to `accept' cc unix_server.c ld: /usr/lib/cmplrs/cc/crtn.o: Error: Unresolved: rindex socket bzero bcopy unllnk bind listen accept

  • コンパイルエラーの意味

    最近プログラミングの勉強を始めた初心者です。作成したプログラムをコンパイルしたところ以下のようなエラーが出ましたがなんのエラーなのかまったく分かりません… 初歩的な質問で申し訳ありませんが教えてください! /user/lib/libcygwin.a(libcmain.o)(.text+0x6a):libcmain.c: undefined reference to'WinMain@16' collect2: ld returned 1 exit status

  • MingwでC++のソースがコンパイルできない。

    質問があるのですがよろしくお願いしします。 プラットフォームは Windows HOME です。 MinGWでC++のhelloworld.cppという名前のプログラム ------ここから----------- #include <iostream> using namespace std; int main(){ cout <<"Hello World!!\n"; return 0; } -------ここまで----------- を、gcc helloworld.cpp とWindowsのコマンドプロンプトから打ってコンパイルしようとしたのですが、 undefined reference to std string::size() const undefined reference to std string::operator[](using int) const undefinrd reference to std::cout undefinrd reference to std::basic_ostream<char, std::char traits<char> >&, char const*) undefinrd reference to std::ios_base::Init::() undefinrd reference to std::ios_base::~Init::() などのエラーが出て、コンパイルできません・・ hello.cという名前のC言語プログラム --------ここから------ #include<stdio.h> int main(void){ printf("Hello GCC World on Windows!!\n"); } ------ここまで------- は、gcc hello.c で正常にコンパイルでき、生成したexeファイルも正常に動きます。 また、eclipse CDT上からc++プログラムをMinGWでコンパイルすることもできるのですが・・ なぜかWindowsのコマンドプロンプトからc++プログラムをコンパイルしようとするとエラーが出てしまいます。(C言語のプログラムでもエラーが出ることが時々あります。) どなたか詳しい方いらっしゃいましたらご教授頂けると幸いです。 よろしくお願いします。