問題タブ [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.
c++ - ヘッダーのみのライブラリと複数の定義エラー
使用するライブラリを作成したいのですが、ヘッダーファイルを1つだけ含める必要があります。ただし、複数のソースファイルがあり、両方にヘッダーが含まれている場合、ライブラリがヘッダーで宣言および定義されているため、複数の定義エラーが発生します。Boostでは、ヘッダーのみのライブラリを見たことがあります。彼らはどうやってそれをしましたか?
c++ - 複数定義リンクエラーを回避するには?
hello()
関数を別のソース (.cpp) ファイルに移動するか、関数の名前を変更します。リンクエラーを回避する他の方法はありますか?
staticLibA.h
staticLibA.cpp
出力:
staticLibB.h
staticLibB.cpp
出力:
main.cpp
出力:
c - gcc __attribute__((selectany)) Linuxの代替?
__attribute__((selectany))
Linuxに代替手段があるかどうか知りたいですか?
私はそのようなものを定義したいと思います:
ヘッダーファイルに追加し、一緒にリンクされる多くの .c ファイルに含めます。そのため、リンカは「a」の複数の定義を参照するため、リンクしません。私はこの属性 (selectany) を読んだことがありますが、これは "a" の最初に見られる定義のみを使用しますが、残念ながらそれは ms ウィンドウ専用です。質問は次のとおりです。Linuxに代替方法はありますか?
編集:実際の質問は次のとおりです。リンカに最初に見た定義のみを使用し、おそらくそれらが異なっていても他の定義を無視するように指示する方法はありますか? データを定義する方法がたくさんあることは知っていますが、データを定義する方法の解決策を探しているわけではありません。代わりに、複数の定義を持ち、リンカを最初に見たもので動作させる方法があるかどうかを知りたいです。 ..
c++ - C++ Qt の複数の定義
MinGW コンパイラを使用して、C++ を使用して Qt で単純な GUI アプリケーション (これまでのところ) を作成しようとしています。ただし、コンパイラは、私がmultiple definition of 'WiimoteScouter::WiimoteScouter(QWidget*)'
オンline 4
になっていることを通知していwiimotescouter.cpp
ます。ヘッダーが複数回含まれていないことを確認するためにチェックを使用していますが、明らかに機能していません。理由はわかりません。
ヘッダーファイルは次のとおりです。
cpp ファイルは次のとおりです。
最後に、main.cpp:
g++ - C ++リンクの問題:複数の定義
残念ながら、ここにすべてのソースコードを投稿することはできません。構造は説明できますが。すべてのヘッダーファイルには、#ifndef /#define /#endifガードがあります。構造は次のとおりです。
- node.h-tree.hに含まれています
- tree.h-tree.cppおよびmain.cppに含まれています
- tree.cpp
- main.cpp
グローバル名前空間のnode.hで、次の独立した関数を宣言します。
(注:以下に示すように、パスは単なるshared_ptrです)ビルドしようとすると、関数がtree.oとmain.oの両方に存在するという複数の定義エラーが発生します。
すべてのソースファイルを検索して、それが正しいかどうかを確認しようとしましたが、間違った場所には表示されません。
案の定、それはバイナリファイルにあります。このリンクの問題を防ぐためにコードを再構築するにはどうすればよいですか?
c++ - staticconstクラスメンバーの複数定義エラー
最近、構造体/クラス内の静的定数の奇妙な未定義のシンボルで説明されている問題に遭遇しました。静的constクラスのメンバーだけでなく、すべての静的constクラスメンバーの対応する.cppファイルに定義を追加して、コードを準拠させようとしています。リンカエラーを引き起こしていたもの。
定数が複数のコンパイルユニットで使用されている場合、定義がコンパイルユニットの1つだけにあるにもかかわらず、複数の定義エラーが発生します。
イニシャライザーを定義に移動することでエラーを防ぐことができますが、私はそうしません。
私が現在VisualStudioで作業している間、このコードはいくつかのプラットフォームでビルドする必要があります。
blackberry - アプリの実行中にエラーが発生しました:「xxx が複数定義されています」
異なる OS バージョン用の Blackberry アプリを構築するにはどうすればよいですか? 同じアプリが 9700 OS 5.0、9800 6.0 では正常に動作するが、9700 OS 6.0 ではエラーが発生するという奇妙な動作を見てきました。
Joes_480x360_ の開始エラー: クラス 'com.core.controller.LastMessages' が複数定義されています
c++ - pion ネットワーク ライブラリに対して静的にリンクする
アプリケーションで pion ネットワーク ライブラリ 4.0.3 をリンクしようとしています。pion::netlib を RELEASE_STATIC モードで単純にコンパイルしようとしましたが、うまくいきました。ただし、アプリケーションでそれに対してリンクすると、多くの未解決の外部が発生します。
次に、RELEASE_STATIC 構成が PION_STATIC_LINKING を定義していることがわかりました。別のライブラリに関する別の投稿から、プログラムでも PION_STATIC_LINKING を定義する必要があることがわかりました。
これを行うと、次のテンプレートに沿って数 100 個のエラーが発生します。
/NODEFAULTLIB:libcmt を使用しようとしましたが、特定の関数が pion-common.lib / pion-net.lib で既に定義されているというエラーが表示されます。
何か案は?:(
c++ - gcc: C++ アプリで C ライブラリをリンクすると、"multiple definition of" エラーが発生する
gcc を使用して C++ アプリケーションにリンクしたい作業中の C ライブラリがありますが、リンカ (g++) で「複数定義」エラーが発生します。C アプリケーションと gcc で動作します。インターフェイスを定義するすべてのヘッダーには、次のものが含まれます。
「nm」コマンドを使用してライブラリを確認したところ、メソッドの定義が複数あります (問題のメソッドはパブリック インターフェイスからのものではありません)。
私の質問は次のとおりです。
ライブラリに複数の定義があるのはなぜですか (T を持つものと U を持つものがあります)。
ファイルを含むアプリケーションが C アプリケーション (ビルドに -Wall を使用している) の場合、なぜ機能するのですか?
特別な属性が必要ですか、特定のファイル拡張子を使用して機能させる必要がありますか、それともプログラミング学校に戻る必要があるのですか :) ?
lib.a ファイルに注目すると、オブジェクトの 1 つが 2 回含まれていることがわかります。たとえば、同じオブジェクトに対して 2 つのセクションがあります。
これが問題だと思いますか?
どんな助けでも本当に感謝しています。
c++ - C ++:ヘッダーファイルのグローバル関数の複数定義エラー
この関数はグローバルであり、ヘッダーファイルで定義されています(一時的にそこに保持したい)。
ヘッダーファイルは、インライン関数を持つ特定のクラスも構成し、それらの関数の1つがこのグローバル関数を呼び出します。
ソースファイルには、問題のグローバル関数のオカレンスは含まれていません。
エラーの原因に関するヒントはありますか?
興味があればコードを投稿できます。