- ベストアンサー
linker errorについて
Dev-C++というのを使ってます。参考書からコピーしたプログラムをコンパイルしたら、Linker error undefined reference to.....とエラーが出てしまいます。ポリモフィズムや、ポインタをプログラムのなかにつかっているのですが、コードは間違っていないし、どこを直していいのかわかりません。回答お願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ライブラリが指定されていないか、関数または非局所オブジェクトが宣言だけで定義がないかのいずれかが原因かと思います。 これ以上、具体的なことが分かるためにも、エラーメッセージの全部を補足してください。
その他の回答 (3)
- jacta
- ベストアンサー率26% (845/3158)
質問者さんは外国の方でしょうか? どうも日本語が通じていないようなので、もっと易しい表現で補足要求します。 > Linker error undefined reference to.....とエラーが出てしまいます。 .....の部分を省略せずに「全部」書いてください。
お礼
DEV C++で、私と同じ問題に合っている人などを参考にしたのですが、よく分からなく、Visual C++を使うことにし、やってみたら動きました。どうもすみません。ありがとうございます。
補足
すいません。補足してという所見過ごしてました。 スーパークラスをコンパイルした時は [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)
リンカエラーならコンパイルは済んでいるのでソース上では問題ないはずですね。 ライブラリが指定されていないだけでは?いずれにしろ、そのエラーの全文を載せていないのでこれ以上の回答は得られないと思います。ここよりかDevC++関係の掲示板に質問するべきかと思いますが。
- suseimei
- ベストアンサー率35% (17/48)
出ているのはリンクエラーですから、コンパイルは無事に済んでいます。ということは、必要なライブラリファイルを追加してみるとよいのではないでしょうか? 参考書に必要なライブラリファイルが明記されていませんか?
補足
付属にCDがついてるんですけど、そこにはやはりそのようなものがついてないような。ライブラリファイルって重にどのようなものが含まれてるんですか?
補足
色々なプログラムを試してみたらヘッダーファイルがあるときに発生すると思います。ヘッダーファイルをどこかに登録する必要があるのですか?