問題タブ [lnk2001]
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++ - リンク エラー LNK2001: 未解決の外部シンボル (Visual Studio 2008)
取り除けないリンク エラーが 3 つあります。
クラスのヘッダー ファイルで、独自のユーザー定義型の static public クラス定数をいくつか定義しました。次に、cpp ファイルでクラス定数を宣言して初期化しました。クラス自体でこれらの定数を使用できます。ただし、別のプロジェクトで定数を使用しようとすると、リンク エラーが発生します。
ここで何が問題なのかわかりません。誰かアイデア?
よろしくお願いします!
ヘッダファイル:
cpp ファイル:
Visual Studio 2008 を使用しています。定数が定義されているプロジェクトは、他のプロジェクトの共通プロパティに参照として追加され、 C++ プロパティに追加の include ディレクトリが追加されます。
別の 3 番目のプロジェクトでは、いくつかの静的クラス定数も実際に宣言していますが、これらを使用してもリンク エラーは発生しません。
リンカー コマンド ライン (すべてのオプション) :
(注意: EuroAllgemeineMasken は、定数が使用される「その他の」プロジェクトです。EuroMelder は、定数が定義および宣言されるプロジェクトです。)
c++ - すべてのプライベート メソッドでの LNK2001
ソースコードを含むプロジェクトと、同じソリューション内の TestProject があります。
TestProject で GTest フレームワークを使用するテスト ファイルは、メイン プロジェクトから#include
ヘッダー ファイルを取得しています。Composite.h
最初の GTest の本体で、Composite.h
. この行は、Composite クラスの各プライベート メソッドでコンパイル エラー LNK2001: unresolved external symbol を返します。
myTest.cpp
ファイル内のコードは次のようになります
このインスタンス化の何が問題になっていますか?
編集
Composite クラスのプライベート メソッドの実装を含むライブラリにリンクしました。また、代わりに、このクラスのソース コードの .cpp を #inlcude しようとしました。どちらのソリューションでも問題は解決しません。
編集 -- 質問
これは、複合クラスとその親クラス (Q_OBJECT
定義済み) の moc ファイルを含むフォルダーが表示されていない可能性がありますか?
テスト プロジェクトのプロパティの追加のディレクトリに、moc ファイルを含むフォルダーを追加してみました。これもうまくいきません。
c++ - Visual Studio 2010: エラー LNK2001: 未解決の外部シンボル: sapi.h および Microsoft Speech SDK for KINECT
Visual Studio 2010 で奇妙なバグが発生しています...
私は、MS Kinect を使用する音声認識プログラムのために、VS 2010 Ultimate で Kinect for Windows SDK v1.8 を使用しています。
サンプルの SpeechBasics (Kinect Developer Toolkit Browser で入手可能) で説明されているように、既定のシステム インクルードとライブラリ ディレクトリを一覧表示する前に、具体的な VC++ インクルードとライブラリ パスをプロジェクト プロパティに追加しました。
しかし、ソリューションを構築すると、次のエラーが発生します。
CKinect_Squeletton.obj: エラー LNK2001: 未解決の外部シンボル _SPDFID_WaveFormatEx CKinect_Squeletton.obj: エラー LNK2001: 未解決の外部シンボル _CLSID_SpStream CKinect_Squeletton.obj: エラー LNK2001: 未解決の外部シンボル _CLSID_SpInprocRecognizer CKinect_Squeletton.obj: エラー LNKresolCategory トークン外部トークン未解決のシンボル
ビルドに失敗しました。
すべてのインクルード ファイル、すべてのプロジェクト プロパティをチェックしました。私は多くの調査を行い、応答の多くの可能性をテストしましたが、私の問題に対する応答が見つかりませんでした...
x64 ターゲット アーキテクチャでビルドしてソリューションをクリーンアップしようとしましたが、常にうまくいくとは限りません。
- なぜ私はこの問題を抱えているのですか?
c++ - Visual Studio 2012 のさまざまなリンカー エラー
私はいくつかの .lib ファイルを与えた学校の課題に取り組んでいます。それらをリンカーに追加しましたが、それでもリンカー エラーが発生します。それらを別のパスに変更すると、代わりにファイルが見つからないというエラーが発生します。私のエラーは次のとおりです。
コンパイルできません。プロジェクトをユニコードから他のオプションに変更しようとさえしました。これは、これらのエラーのいずれかで誰かの問題を修正したことを読んだからです。
編集、おそらく関連するこれらの警告もたくさん表示されます。クラス「sql::SQLString」のクライアントが使用する dll-interface c:\users\kenny\documents\software project\groep 6\docs\dev-branch-kenny\kiadealer\kiadealer\include\cppconn\sqlstring.h 38
c++ - nuget パッケージを追加した後の複数の Link2001 エラー
別の質問を投稿しても問題ないことを願っていますが、私の問題を理解することが重要だと思います。そのため、オープンソース プロジェクト Sumo に取り組んでおり、http 経由で json 形式でデータを送信するクラスを追加しようとしています。したがって、プロジェクトは、作業を開始する前にexeをコンパイルしてビルドしました。次に、次の 2 つのファイルを追加しました。
そして私のコード:
そのため、プロジェクトは以前に xerces を使用しており、私が言ったようにうまくいきました。nuget パッケージ casablanca を追加してビルドしようとすると、casblanca クラスと xerces で LNK エラーが発生しました。さて、プラグインをライブラリに追加すると、これらのエラーは消えました。代わりに、同じプロジェクトと別のプロジェクトでLNKエラーが再び発生し、さらに多くのエラーが発生しました.. C ++を初めて使用することに疑問を抱いていますが、そのプロジェクトを追加する前にすでに正常に構築したものに問題があるのはなぜですか?
std:basic_string LNKエラーのようなものさえあるので、今はエラーがあり、今は本当に失われています...
私はここで本当に迷っており、どんな助けも本当に感謝しています. そのプロジェクトを追加する前にビルドが機能したため、すべてが定義されているため、エラーに関する他のトピックで読んだものから、実際には取得できませんか? 円のようなものはありますか?
visual-studio-2010 - ブースト ライブラリを使用した VS2008 から VS2010 へのソリューション アップグレード。エラー LNK2001
現在、VS2008 で開発されたソリューションを VS2010 で構築しようとしています。設計目的のために、プロジェクトは v90 ツールセットを使用してビルドされ、v3.5 のターゲット フレームワークを持っている必要があります。変換ウィザードがインポートされたプロジェクトで完了した後、ターゲット フレームワーク/ツールセットのそれぞれをこれらの値に変更しました。プロジェクトは、次のブースト ライブラリを使用します: thread、system、regex、および date_time。VS2010 コマンド プロンプトで次のコマンドを使用して、boost_1_47 バージョンから v90 ツールセットまでこれらのライブラリをビルドしました: b2 toolset=msvc-9.0 –build-type=complete –with-'libraryname'.
ブースト ルート フォルダーへのリンクは、C++ の追加のインクルード ディレクトリで参照され、ライブラリが組み込まれたブースト ライブラリ フォルダーは、リンカーの追加のライブラリ ディレクトリで参照されます。私は32ビットプラットフォーム用に構築しています。
ソリューションのビルドを試みると、次のエラーが発生します。
エラーの原因は、boost auto_link.hpp ファイルの次の部分で確認できると思います。
これは、boost ライブラリとプロジェクト ファイルが v90 ツールセットに設定されているにもかかわらず、オート リンカがまだ v100 ライブラリにリンクしようとしていることを示しています。BOOST_MSVC 値がどこでどのように定義されているかはわかりませんが、これがリンカー エラーの原因であることを願っています。
プロジェクトの build.h ファイルには、次のステートメントが含まれています。
#define BOOST_ALL_DYN_LINK
c++ - PCL の BreadthFirstIterator 使用時の LNK2001 エラー
これが私のコードのコードです pcl::octree::OctreePointCloud::BreadthFirstIterator tree_depth_it; pcl::octree::OctreePointCloud::BreadthFirstIterator tree_depth_it_end = octree.breadth_end();
表示されるエラー
エラー 1 エラー LNK2001: 未解決の外部シンボル "パブリック: クラス pcl::octree::OctreeBreadthFirstIterator > & __cdecl pcl::octree::OctreeBreadthFirstIterator >::operator++(void)" (??E?$OctreeBreadthFirstIterator@V?$OctreeBase@ VOctreeContainerPointIndices@octree@pcl@@VOctreeContainerEmpty@23@@octree@pcl@@@octree@pcl@@QEAAAEAV012@XZ) C:\Pathe\Octree.obj manipulability_core
OctreePointCloudSearch を使用したときにエラーは発生しませんでしたが、BreadthFirstIterator コードを追加して以来、エラーが表示されます。標準の pcl_octree_debug.lib をリンクし、ライブラリをブーストし、その他の pcl ライブラリをリンクしましたが、それでもエラーを取り除くことができません。
c++ - LNK2001: x64 プラットフォーム用にビルドする際の未解決の外部シンボル
プロジェクトは Win32 プラットフォームでビルドされますが、x64 ではビルドされません。
完全なエラー メッセージ: dllentry.obj : エラー LNK2001: 未解決の外部シンボル "class CFactoryTemplate * g_Templates" (?g_Templates@@3PAVCFactoryTemplate@@A)
dllentry.cpp は両方のプラットフォームでコンパイルされます。外部宣言が含まれています。
g_Templates[] は、次の 2 つの関数で使用されます。
と
プロジェクト設定ですべてのライブラリを確認しましたが、すべて問題ないようで、64 ビット バージョンが使用されています。プロジェクトを x64 プラットフォーム用にビルドするにはどうすればよいですか?