問題タブ [lnk2005]
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++ - テンプレート化されたクラスでのリンカ エラー
テンプレート化されたクラスをコンパイルしようとすると、リンカー エラーが発生します。私は C++ のテンプレート化されたプログラミングとコンパイラ (MSBuild/VS2012) の動作にあまり熱心ではなく、何が間違っていたのかを判断するのに苦労しています。/CLR でコンパイルしていますが、ソース ファイルをコンパイルしようとすると、次のような一連のリンカー エラー (LNK2005) が発生します。
ISaveStrategy.h:
SaveToXmlStrategy.h:
SaveToXmlStrategy.cpp:
実装.cpp:
c++ - Visual Studio は、関数が既に定義されていると考えていますか?
私が取り組んでいるプロジェクト用に 2 つのファイルがあります。1 つは私が書いたもので、もう 1 つは仲間の学生が作成したもので、一種の API として機能します。私の問題は、リソース ファイルで定義されている関数が VS2012 でリンカー エラーを引き起こしていることです。
Microsoft が次のように定義しているエラーLNK2005が発生しています。
オブジェクトで既に定義されているシンボル
装飾された形式で表示された特定のシンボルが複数定義されています。
リソース ファイル で定義されている 3 つの関数は次のArgvFunctions.cppとおりです。
と#includes私の実装ファイルで:
それが役立つ場合: この問題に遭遇する前に、ArgvFunctions.cppその関数が のバージョンを使用し、Microsoft がセキュリティ上の問題のために廃止されたことが原因でstrtok()発生したエラーを抑制しなければstrncpy()なりませんでした (何も渡されていないことを確認しています)。私が知る限り、関数はそれらstrtok()をつまずかせる可能性があるので、それらの問題はどちらの方法でも問題にはなりません; また、私には時間も知識もありませんstrtok_s()。
編集:
おっと、私は C++ について何も知らないことがわかりました。皆さんありがとう。
c++ - Boost ファイルシステム ヘッダーのインクルード
私には大きなプロジェクトがあります。
パスが有効かどうかを確認するためにN.cpp使用する必要があります。boost::filesystem::exists(path)
そのために、私は<boost/filesystem.hpp>
次のエラーが表示されます。
ヘッダー ファイルをインクルードしないと、次のようになります。
boost::filesystem::exists全体がコンパイルされるように使用する正しい方法は何ですか?