問題タブ [unresolved-external]
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++ - 明示的なテンプレートのインスタンス化による未解決の外部。宣言の構文は何ですか?
これは、私が抱えている問題を示すための単純化されたコードです。
特定の固定されたインスタンス化のみをコンパイルしたいテンプレート関数があります。
関数宣言は次のとおりです。
定義は次のとおりです。
そして、使用例は次のとおりです。
これをコンパイルしようとすると、リンク エラーが発生します。
main.obj : 関数 main で参照されている未解決の外部シンボル "int square(int)"
問題の内容は理解しています。明示的なテンプレートのインスタンス化の関数シグネチャがヘッダー ファイルのものと一致しません。
明示的なテンプレートのインスタンス化の (前方) 宣言の構文は何ですか? テンプレート定義を前方宣言したり、テンプレート定義をヘッダー ファイルに移動したりしたくありません。
価値があるのは、上記のファイルに以下を追加して、ラッパー関数を使用するという回避策があります。
これはコンパイルされ、期待どおりに動作します。しかし、これは私にはハックのようです。C++ およびテンプレート構文で利用できるものよりも洗練されたものがあるはずです。
どんな助けやヒントも大歓迎です。
c++ - 未解決の外部シンボル
リンクエラーが発生しましたが、何を指しているのかわかりません。
これがエラーです
1> Main.obj:エラーLNK2019:未解決の外部シンボル "public:void __thiscall BinaryHeap、class std :: allocator >>、class Comp、class std :: allocator >> >> :: insert(class Item、class std :: allocator >> const&) "(?insert @?$ BinaryHeap @ V?$ Item @ V?$ basic_string @ DU?$ char_traits @ D @ std @@ V?$ allocator @ D @ 2 @@ std @@@@ V ?$ Comp @ V?$ basic_string @ DU?$ char_traits @ D @ std @@ V?$ allocator @ D @ 2 @@ std @@@@@@ QAEXABV?$ Item @ V?$ basic_string @ DU?$ char_traits @ D @ std @@ V?$ allocator @ D @ 2 @@ std @@@@@ Z)関数 "public:void __thiscall PriorityQueue、class std :: allocator >> :: insertItem(int、class std: :basic_string、class std :: allocator> const&) "(?insertItem @?$ PriorityQueue @ V?$ basic_string @ DU?$ char_traits @ D @ std @@ V?$ allocator @ D @ 2 @@ std @@@ @QAEXHABV?$ basic_string @ DU?$ char_traits @ D @ std @@ V?$ allocator @ D @ 2 @@ std @@@ Z)
コードはかなり長いですが、投稿してほしい場合は投稿します。
ありがとう
c++ - インターフェイスを継承するときの未解決のシンボル
ここは夜遅く、リンカーエラーを解決しようと夢中になっています。
次の抽象インターフェースがある場合:
そして私はそれを次のようにインスタンス化します:
リンク時に次のエラーが発生するのはなぜですか?
IArpPacketBuilder
は抽象的なインターフェイスです。具体的な(派生)インターフェイスでコンストラクターと破棄を定義する限り、問題はありませんか?まあそうではないようです。
c++ - 仮想関数の未解決の外部シンボル
これらの各クラスは、個別のdllモジュールにあります。
Other.cppの場合:
Base.libとの派生リンクを含むモジュール(エクスポート/インポートディレクティブは表示されていません)。Other.cppを含むモジュールはDerived.libとリンクしていますが、Base.libはリンクしていません。この時点まで、すべてが正常に機能します。
ただし、Base :: bar()を仮想に変更し、Derivedに変更を加えない場合、リンカーはOther.dllをリンクするときに文句を言います。
私が見つけた唯一の解決策は、DerivedのBase :: bar()をオーバーライドするか、Other.dllもBase.libとリンクすることです。サーバーが変更されたときにクライアント要件が追加されるため、どちらのソリューションも望ましくありません。
このシナリオで基本クラスの仮想メソッドにアクセス/定義するためのより良い方法に関するアイデアはありますか?
c++ - リンクされたオブジェクトの奇妙な未解決の外部エラー
Visual Studio 10 C++ を使用すると、奇妙なリンク エラーが発生します。何らかの理由で、グローバル オブジェクトへの参照はそのグローバル オブジェクトにリンクしません。シンボルが定義されていないことを私に伝えています.codファイルを表示すると、シンボルはすぐそこにあります。
エラー:
ただし、メイン cpp ファイルの .cod ファイルには、グローバル シンボルの宣言と割り当ての両方が示されています。
では、スタティック ライブラリの _pFTModule がソース ファイルのグローバル シンボルと一致しないのはなぜでしょうか?
編集: コマンドラインから msbuild を実行しました:
最後に、.obj ファイルが 1 つしかないことに気付きました。プロジェクトには 2 つの .cpp ファイルがあります。MSBUILD は両方のファイルをビルドしました。では、なぜ両方のファイルをリンカーに渡さなかったのでしょう。.vcxproj ファイルは、.cpp ファイルを異なる方法で処理しません。MSBUILD がリンク ステップに両方のファイルを含めないのはなぜですか?
c++ - boost::スレッドとメンバー関数
boost::thread を使用しようとすると、この問題に直面しました:
未解決の外部シンボル:
誰にもアイデアはありますか?
c++ - 'extern'キーワードの問題
cppファイルにグローバル変数とメソッドのセットがあります。
ヘッダーファイルで、externキーワードを使用して明示的に宣言しました。私の問題は、ヘッダーファイルを別のC ++ファイルにインクルードすると、外部変数とメソッドを使用できないことです。エラーLNK2001:メソッドと変数の未解決の外部シンボルを示すリンカーエラーが発生します。私はここで何を間違えましたか?
PS:DoStuff()メソッドは変数を設定します。すべてのヘッダーファイルとcppファイルは同じプロジェクトフォルダーにあります。
ありがとう!
c++ - Direct2D を使用した未解決の外部シンボル
hereから 'WIC Image Viewer ussign Direct2D' をダウンロードしてビルドしようとしていますが、ソリューションをビルドすると、次のような 56 個のエラーが表示されます。
- エラー 1 エラー LNK2019: 関数 _wWinMain@16 WICViewerD2D.obj で参照されている未解決の外部シンボル __imp__CoUninitialize@0
- エラー 2 エラー LNK2019: 関数 _wWinMain@16 WICViewerD2D.obj で参照されている未解決の外部シンボル __imp__DispatchMessageW@4
- エラー 3 エラー LNK2019: 未解決の外部シンボル __imp__TranslateMessage@4 が関数 _wWinMain@16 WICViewerD2D.obj で参照されています
等々。確かに、これは私の Visual Studio 設定の何かです。なぜなら、このコードはそのままで動作するはずではないからです。Windows SDK v7.0 がインストールされています。
c++ - この仮想デストラクタが未解決の外部をトリガーするのはなぜですか?
次の点を考慮してください。
Xhで:
X.cpp:
これをビルドしてみてください (欠落しているメインのエラーを回避するために .dll ターゲットを使用しており、Visual Studio 2010 を使用しています):
エラー 1 エラー LNK2001: 未解決の外部シンボル "private: virtual __thiscall X::~X(void)" (??1X@@EAE@XZ)
ただし、わずかな変更でビルドは成功します。
じ:
また
じ:
.dtor が仮想の場合、または .ctor がインライン化されていない場合、リンカで未解決の外部が発生する原因は何ですか?
編集:
または、おそらくもっと興味深いことに、デストラクタを非仮想にした場合、またはコンストラクタをインライン化した場合、未解決の外部が得られないのはなぜですか?
c++ - テンプレート クラス + 演算子 + フレンド = 未解決の外部要素
分数というクラスがあり、一部の演算子をフレンドとして宣言しています。http://www.parashift.com/c++-faq-lite/templates.html#faq-35.16に言われたので、フレンド演算子を事前に宣言しましたが、+、-、*、および / のみが修正されました。<< と >> はまだ機能しません。
そしてクラス: