問題タブ [lnk2019]
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++ - LNK2019 テンプレート化されていないクラスの使用
他のクラスを参照するクラスを使用すると、リンカー エラーが発生します。
これは、このクラスを参照することによるものです:
このクラスでは:
それらは現在同じ .cpp ファイル内にあり、MovePattern は Enemy の上にあります。
ここで何が起こっているのかわかりません
空のコンソール プロジェクトを含む Visual C++ 2010 Express で、私の問題に似たものはまだ見つかりません。助けていただければ幸いです。
c++ - C++ エラー LNK2019 およびエラー LNK1120
こんにちは、コンソールで三目並べゲームを作っています。コードの何が問題になっていますか? リンカー設定をコンソールとして設定しました。
コード:
c++ - エラー LNK2019: 未解決の外部シンボル _main が関数 ___tmainCRTStartup で参照されていますが、今回は Windows/コンソールの問題ではありません!
そのため、悪名高いエラーが戻ってきました。プロジェクトは、main() メソッドが見つからないと不平を言っています (それがエラーの意味です)。
ただし、メインがあり、私のプロジェクトはコンソール プロジェクトです。以前は機能していたので、そうではないことはわかっています。
また、プロジェクトにはクラスとファイルが多すぎてすべてを投稿できないため、リクエストに応じて必要なクラスを投稿します。
これは、Visual Studio 2010 上の C++、OpenGL、および SDL ゲームです。このリンカ エラーが突然、不可解に表示される前は問題なく動作していたため、どのライブラリの問題でもありません。
編集: main() メソッド:
c++ - "Cleared" マクロは .lib ファイルにエクスポートされますか?
私はいくつかのマクロを持っており#define dosomething(x) something(x)
、それはdllにコンパイルされています。ビルドによって作成されたそのライブラリにそのマクロがありますか?
c++ - プログラムのリンカ エラーを解消するにはどうすればよいですか?
クラス用にこのコードを書いていますが、Visual Studio を使用してリンカー エラー LNK2019 および LNK1120 が発生しています。なぜそれが何をしているのかはよくわかりませんが、脱線します。
ヘッダー ファイル:
そしてCPPファイル:
それを修正するためにできることはありますか?
c++ - C++リンカーエラーLNK2019
私はまだC++に慣れていないので、別のクラスでこれらの関数を呼び出そうとしているときに、なぜこれらのリンカーエラーが発生するのかわかりません。
エラーは次のとおりです。
Projectile.cpp:
スターはここでStar.hで定義されています:
c++ - Visual C++LNK2019エラー
Microsoft Visual C ++を使用して、無料でダウンロードできる小さなパッケージの一部であるファイル「test.cc」をコンパイルしようとしています。
http://sourceforge.net/projects/clippoly/files/
test.ccファイルは次のように表示されます。
テストファイルは、2つの入力ポリゴンの交差の計算を示すように設計されています。
「プロジェクト」->「プロパティ」->「VC++ディレクトリ」->「ディレクトリを含める」に必要なヘッダーファイルへのパスをインクルードしましたが、コンパイラは「poly.h」、「poly_io.h」、「nclip.h」の存在を認識しています。
ただし、コンパイルしようとすると、次のリンカーエラーが発生します。
test.obj:エラーLNK2019:関数スカラー削除デストラクタ'(unsigned int) "`(?? _ GPolyNode @@ AAAEPAX @ Z)
"private: __thiscall PolyNode::~PolyNode(void)"
で参照される未解決の外部シンボル(?? 1PolyNode @@ AAE @ XZ )"private: void * __thiscall PolyNode::
test.obj:エラーLNK2019:未解決の外部シンボル
"class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class Set<class Poly *> const &)"
(?? 6 @ YAAAV?$ basic_ostream @ DU?$ char_traits @ D @ std @@@ std @@ AAV01 @ ABV?$ Set @ PAVPoly @@@@@ Z)参照機能的に_main
test.obj:エラーLNK2019:
"void __cdecl clip_poly(class Poly const &,class Poly const &,class Set<class Poly *> &,class Set<class Poly *> &,class Set<class Poly *> &)"
関数で参照されている未解決の外部シンボル(?clip_poly @@ YAXABVPoly @@ 0AAV?$ Set @ PAVPoly @@@@ 11 @ Z)_main
test.obj:エラーLNK2019:
"class Poly * __cdecl read_poly(class std::basic_istream<char,struct std::char_traits<char> > &)"
関数で参照される未解決の外部シンボル(?read_poly @@ YAPAVPoly @@ AAV?$ basic_istream @ DU?$ char_traits @ D @ std @@@ std @@@ Z)_main
私は何が間違っているのですか?「プロジェクト->プロパティ」の下のいたるところにパスを追加しようとしました。しかし今、私は途方に暮れています。
これが誰かにとってかなり簡単な質問であることを願っています:)
visual-studio-2010 - エラーLNK2019:未解決の外部シンボル "toString(int)"
環境:WindowsXP。VisualStudios2010。言語-C++。
私は次のリンクエラーに遭遇し、この問題を修正する方法のアイデアを使い果たしました。私のグループが管理する2つのプロジェクト(Messages&Carbon)にリンクするプロジェクト(CnD Device)があります。3つのプロジェクト間でプロジェクトのプロパティを検索しようとしました
この問題は、標準C++ライブラリにある文字列にリンクしていないことが原因だと思います。プロパティリストを何度もスキャンしました。以下は、この問題にとって重要であると私が信じるいくつかの特性です。
CnDデバイスのプロパティ情報:
- 構成タイプダイナミックライブラリ.dll
- MFCの使用共有DLLでMFCを使用する
- ALTを使用しないALTを使用する
- 文字セットマルチバイト文字セットを使用
- ランタイムライブラリマルチスレッドDLL(/ MD)
- 追加の依存関係msvcprtd.lib、Carbon.lib、BUFFER_API.lib、BUFFER_FRAMEWORK.lib、Messages.lib
- すべてのデフォルトライブラリを無視しますいいえ
メッセージプロパティ情報:
- 構成タイプ静的ライブラリ(.lib)
- MFCの使用共有DLLでMFCを使用する
- ALTを使用しないALTを使用する
- 文字セットUnicode文字セットを使用
- ランタイムライブラリマルチスレッドDLL(/ MD)
- 追加の依存関係
- リンクライブラリの依存関係
炭素特性情報:
- 構成タイプ静的ライブラリ(.lib)
- MFCの使用共有DLLでMFCを使用する
- ALTを使用しないALTを使用する
- 文字セットUnicode文字セットを使用
- ランタイムライブラリマルチスレッドDLL(/ MD)
- リンクライブラリの依存関係
私のCnDリンク出力は次のとおりです。
visual-c++ - MS VC リンカ (link.exe): 32 ビットと 64 ビットの CPU アーキテクチャの不一致に関する警告が表示されないのはなぜですか?
(更新: Hans の提案によると、の動作を改善するための提案link.exe
があります。そこにアカウントを持っている場合は、投票できます。)
わかりました、私はばかです。1 月に、自分のコンピューター、Win7 Pro 64 ビットに Oracle をインストールしました。64ビット版をインストールしました。昨日、MSVC Express を使用して、 とoci1.c
に対して小さなテスト プログラムをコンパイルしてリンクしようoci.h
としましoci.lib
た。
私の試みは で失敗し続けましたLNK2019
。これは、未解決の外部シンボル 'symbol' が関数 'function' で参照されていることを意味します。問題のシンボル ( _OCIEnvCreate
) はもちろん によって提供されるoci.lib
ため、リンカはそれを解決できるはずです。
私のコンパイラは 32 ビットのみであり、インポート ライブラリは 64 ビットであるため、機能しないことが最終的にわかりました。あなたがばかで、知らないか覚えていない場合は、dumpbin
ユーティリティを使用して確認できます。
ここまでは順調ですね。しかし、私は時間を無駄にしたので、その経験を繰り返さないようにしたいと思います.
間違いではありませんが、LNK2019
エラー メッセージから正しい方向に進むことはできません。異なる CPU アーキテクチャのバイナリをリンクしようとしているという警告はありません。
X64 アーキテクチャを指定すると、X86 バイナリを指定したという警告が表示されることに注意してください。
ただし、X86 アーキテクチャを明示的または暗黙的に指定する場合、そのような正確な警告はありません。
/VERBOSE スイッチをlink.exe
に見つけました。これを使用すると、64 ビットにシンボルが見つからないことがわかりますoci.lib
。
リンクプロセスをより簡単にするためにオンにできる他のオプションはありますか?
更新:Hans の回答によるとdumpbin
、32 ビットのインポート ライブラリで実行したところ、名前は次のように表示されます。
ここで扱っている 64 ビット OCI インポート ライブラリの名前は装飾されていないように見えます。
Windows コンテキストで x64 アーキテクチャ用にコンパイルする場合 (Microsoft のツールを使用するか、Microsoft 以外のツールを使用するかに関係なく)、呼び出し規則は 1 つだけです。ここで説明するものであるため、stdcall、thiscall、cdecl、fastcall などはすべて 1 つになります。そして同じ。
name mangling に関する記事も関連しています。
今私には理にかなっています。呼び出し規則が 1 つしかないため、名前のマングリングが不要であり、cdecl
X86 用にコンパイルする場合のように先頭にアンダースコアがありません。
c++ - LNK2019クラスを継承しようとするとき
だから、私は別のクラスからクラスを継承しようとしています。基本クラスのエンティティがあり、そこから継承する必要のあるヒーロークラスがあります。
いつものように、私はこれを次のように行います:
私のエンティティクラス:
そして、私が得るエラーは次のとおりです。
誰かが私がここで間違っていることを教えてもらえますか?