問題タブ [multiple-definition-error]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
8247 参照

c++ - Arduino ライブラリの複数の定義エラー

https://github.com/janisHD/LightRobotから lightRobot.ino Arduino スケッチをArduino 1.0.5 でコンパイルしようとしていますが、lightRobot ライブラリの関数に対して複数の定義エラーが発生しています。OS X 10.8.5 を使用していますが、Windows 8 でも同じ問題が発生しました。

.h および .cpp ファイルの例を次に示します。

BlueToothEvent.h

BlueToothEvent.cpp

コンパイル時に次のエラーが発生します - リストされた .h/.cpp ファイルのペアのエラーのみを表示しました - lightRobot ライブラリのすべてのファイルに同様のエラーがあります。

オブジェクトファイルでエラーが発生しているようですが、ヘッダーファイルには複数の定義を防ぐためのガードがあるため、理由はわかりません。

0 投票する
1 に答える
7428 参照

c++ - 別の「ここで最初に定義された複数の定義」エラー

さて、私は過去 4 時間、この「ここで最初に定義された複数の定義」の問題についてすべてのフォーラムを検索してきました。

次のファイルがあります。

main.cpp には、Server.cpp で定義されるいくつかの関数を宣言する Server.h のみが含まれます。
Server.cpp は Socket.cpp、FileHandlerOut.cpp、および Packet.h の関数を使用するため、ヘッダー ファイル Socket.h、Packet.h、および FileHandlerIn.h は Server.h に含まれています。他のヘッダー ファイルには、標準ライブラリ以外のものは含まれていません。

Server.cpp のすべての関数と Packet.h のすべての関数で、複数定義エラーが発生します。Packet.h 内に関数がある理由は、構造体が定義されており、Packet.h 関数はすべて構造体で動作するためです。これらの関数を正しく定義する方法について本当に混乱しているので、他の cpp ファイルで使用できます。これは私の問題の一部でしょうか?

0 投票する
5 に答える
54428 参照

c - main() の多重定義

こんにちは、2 つの main() を使用しようとしていて、main() の複数の定義でこのエラーが発生しています。メイン関数の名前を変更した後、なぜこのエラーが発生し、print() に対してここで最初に定義されたのか。ヘッダファイル:

cファイル1:

cファイル2:

エラーのスナップショット

0 投票する
0 に答える
102 参照

c++ - C++ 複数定義エラー

単純な C++ の hello world プログラムで大量のエラーが発生します。

エラー

これについて見たすべての解決策は混乱を招き、役に立ちませんでした。コード ブロック IDE を使用しています。

0 投票する
2 に答える
356 参照

c++ - 複数定義エラー

非常に奇妙な問題で立ち往生しているため、この質問を投稿しました。いくつかの .cpp ファイルといくつかのヘッダーのプロジェクトがあります。特に、このコードは 3 つの異なる .cpp ファイルに含まれています。

各ファイルで異なる役割を果たします。コンパイラが「複数定義エラー」を取得するのはなぜだろうか。2 つの関数プロトタイプと変数は、(ヘッダーではなく) .cpp ファイルでのみ定義され、宣言されているファイルでのみ使用されます。

宣言の前に「静的」という単語を入れてこのエラーを解決しましたが、問題なく動作しましたが、デバッガーに問題がありました (変数の値が表示されません)。上記の変数と関数の名前を変更すると、デバッガーでのトラブルがなくなることがわかりました。変数の名前を変更する代わりに、グローバルではなく関数内で変数を宣言することにしました。関数の名前は変更していません。このようにすると、関数「cranknicolson1()」を呼び出すたびに、何かを実行する前に突然プログラムがクラッシュします。この非常に奇妙な動作は、関数プロトタイプの前の「静的」という言葉によって引き起こされていると思います。説明できないからです!!! これが私のコードです。http://qpwoei.altervista.org/Code.zip 何かを実行する前に、cranknicolson1() でコードがクラッシュするという事実を強調します。したがって、クランクニコルソン アルゴリズムには問題はありませんが、別の問題があります。誰かが私を助けてくれることを願っています、よろしくお願いします!!

0 投票する
1 に答える
134 参照

c++ - 複数の定義のコンパイル エラー

StackExchange での最初の投稿です。C++ コースの課題があります。Date クラス (月、日、年) と Time クラス (時間、分、AM/PM) の以前の割り当てを使用する Appointment クラスを作成します。プライマリ/構文エラーのほとんどが邪魔にならないと思います。

私の問題は、#includes とヘッダー ファイルを現在どのように行っているかで、日付と時刻のコンストラクターの複数定義エラーが発生することです。 (そして、私はテンプレートについてあまり知りませんが、それらを使用する必要があります。)

私のファイル:

  • 予定.cpp

    Time/Date オブジェクトを作成できるようにする必要があります。.h または .cpp ファイルを使用する必要がありますか?

  • 予定.h

    /li>
  • 日付.cpp

    /li>
  • 日付.h

    /li>
  • 時間.cpp

    /li>
  • time.h

    /li>

以下は、上記のファイルの実装に関連しています。

  • main.cpp

    /li>
  • read.cpp

    /li>
  • 出力.cpp

    /li>
  • arrayListType.h (すべての実装がテンプレートとして含まれています)

  • itemType.h

最後の 2 を参照する必要があるかどうかわかりません。さらに情報を投稿する必要がある場合は、喜んで投稿します。すべてのファイルの圧縮バージョンもあります。

0 投票する
1 に答える
1349 参照

c++ - シンボルの定義が複数あるため、CMake を使用して C++ で共有ライブラリを作成するリンク エラー

POCO C ++ライブラリとリンクするコードをコンパイルして、Linux用の共有ライブラリを作成するのに問題があります(念のため、Mint 13)。これが私の縮小環境です。

私はこれらの3つのファイルを持っています:

IL_Notify.h

IL_Class1.cpp

IL_Class2.cpp

IL_Class1IL_Class2は と で宣言されIL_Class1.hIL_Class2.hいます。IL_Notify.hこれらのヘッダー内には含まれません。

そして、これは私のCMakeLists.txtファイルです

正常に実行cmakeでき、Makefile. しかし、実行するmakeと、このエラーが発生します

そのため、ヘッダーが 2 回含まれないようにしていても、そのヘッダーで宣言されたシンボルが 2 回検出されるため#ifndefmakeコードをコンパイルできません。なんで?