問題タブ [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.

0 投票する
1 に答える
3552 参照

c++ - エラーLNK2005はすでに定義されています-実行後にビルドするときのコンパイラエラー

C++チュートリアルでRiemerのDirectXをフォローしようとしています。

いくつかの変更を加えました。たとえば、ここではInitializeDevice()関数を別のファイル(tdirect.cpp/ tdirect.h)に作成しました。

F5キーを押してコンパイルして実行すると、プログラムは完全に機能します。しかし、「再構築」オプションを選択せず0xff00ffff​​に値を変更すると(たとえば、0xff0000ffシアンから青に) 、コンソールにエラーのストリームが表示され、プログラムをコンパイルできなくなります。あなたが想像できるように、これはかなり迷惑です。まるで2回コンパイルしているかのようです。tdirect.cpp

、、およびの関連部分は次のとおりです(からのみ含まれtdirect.cpp、からのみ含まれます)tdirect.hmain.cpptdirect.hmain.cppbasicvertex.htdirect.cpp

tdirect.cpp

tdirect.h

main.cpp一部を含める

コンパイラエラー:

前もって感謝します :)

0 投票する
0 に答える
1804 参照

qt - Qt + Zlib => error LNK2005: _deflate_copyright already defined in QtCored.lib(deflate.obj) zlibstat.lib

When I link my application I receive the following message:

error LNK2005: _deflate_copyright already defined in QtCored.lib(deflate.obj) zlibstat.lib

I'm not sure of the problem, but... I use QT and ZLib. Both are "static libraries". The problem is that the QTCore.lib contains ZLib too!

Project Qt: contains its own version on ZLib. Project GenericLib: use an external ZLib.lib (cannot be linked to Qt). Project main: use Qt + Generic lib.

As I say, I'm not sure that it is the problem. But, anyway, if someone has an idea to help me?

Thanks for your help.

0 投票する
1 に答える
859 参照

visual-c++ - 奇妙なリンクエラー-LNK1224:無効なイメージベース

非常に古いVisualStudio97C++プロジェクトをVisualStudio2010に移植するのに、かなりの問題があります。まず、この新しいLNK1224エラーの直前に発生したエラーについて、関連している可能性があるため、少し背景を説明します。わからない。

新しいエラーが発生する前は、次のエラーが発生していました。

いくつか掘り下げてみると、このエラーの理由は、MFCライブラリとCRTライブラリの両方に「new」と「delete」の定義が含まれているため、衝突していたことがわかりました。Microsoftは、このための2つのソリューションをhttp://support.microsoft.com/kb/q148652/で提供しています。それらの1つは、すべてのファイルに常にMFCヘッダー(afxのもの)を最初に含めるようにすることでした。このプロジェクトには約100個のファイルがあり、リソースが間違った順序で含まれているファイルを見つけようとするのにうんざりしていました。そこで、基本的にライブラリを特定の順序でロードするように強制する他のソリューションを使用しました。基本的に、特定のライブラリを無視するようにコンパイラに指示する必要があります。これにより、選択した順序でライブラリを明示的にロードできます。私の場合、それはnafxcw.libでした。

そのため、[プロジェクトのプロパティ]->[リンカー]->[入力]で、nafxcw.libを明示的に無視し、リストの先頭に明示的に含めました。

プロパティウィンドウ

したがって、これを行った後、私のLNK2005エラーはなくなりました。しかし、それらは1つの単一リンクエラーに置き換えられました。

以前のリンクエラーを正しく修正したかどうかはわかりませんが、この新しいリンクエラーは実際に次に対処する必要があります。または、リンクプロセスが到達する前に基本的に停止する、より重大なリンクエラーを作成しただけです。私の元のLNK2005エラー。どちらの場合でも、このエラーについて私が見つけることができる情報はあまりありません。Microsoftは、このリンクでそれについて多くを語っていませんhttp://msdn.microsoft.com/en-us/library/3ya3f8wz%28v=vs.80%29.aspx

イメージに無効なベースアドレスを指定しました。ベースアドレスは64KBに揃える必要があり(最後の4桁の16進数はゼロである必要があります)、イメージベースは32ビットの符号付きまたは符号なしの値に収まる必要があります。

これは私にとってそれほど役に立たないわけではなく、この問題がどこから来ているのかについて他の手がかりはないようです。次のステップが何なのかわかりません。

0 投票する
1 に答える
7150 参照

visual-studio-2010 - VS2010 で googleTest をリンクすると、他の依存ライブラリが原因で LNK2005 になります

最終的に単体テストを取得する大規模で複雑なプロジェクトがあります。Visual Studio 2010 を使用して googleTest 1.6.0 をローカルにビルドしました。このプロジェクト ファイルは、README で指定されているように cmake でビルドされています。

このプロジェクトには、静的および動的にリンクされた多くの依存ライブラリがあります。それらの多くは独自仕様です。リンクしようとすると、220 のエラーが生成されます。サンプリングは次のとおりです。

msvcprtd.lib(MSVCP100D.dll): エラー LNK2005: "public: void __cdecl std::_Container_base12::_Orphan_all(void)" (?_Orphan_all@_Container_base12@std@@QEAAXXZ) は gtest.lib(gtest-all.オブジェクト)

libcpmtd.lib(cerr.obj) : エラー LNK2005: "保護: char * __cdecl std::basic_streambuf >::_Gndec(void)" (?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std @@IEAAPEADXZ) は既に msvcprtd.lib(MSVCP100D.dll) で定義されています

LIBCMTD.lib(setlocal.obj): エラー LNK2005: _configthreadlocale は既に MSVCRTD.lib(MSVCR100D.dll) で定義されています

リンク: 警告 LNK4098: defaultlib 'MSVCRTD' は他のライブラリの使用と競合します。/NODEFAULTLIB:library LINK を使用: 警告 LNK4098: defaultlib 'LIBCMTD' は他のライブラリの使用と競合します。/NODEFAULTLIB:ライブラリを使用

致命的なエラー LNK1169: 1 つ以上の複数定義されたシンボルが見つかりました

/NODEFAULTLIB フラグを試してみました。また、示唆されているように、msvcprtd.lib、MSVCRTD.lib、および LIBCMTD.lib だけを無視しようとしましたが、未解決のシンボルに悩まされています...

プロジェクトと googleTest は両方とも、x64、/MP、/MDd でコンパイルされ、/clr はありません。

ある種のバージョンの不一致があるかどうか疑問に思って、コンパイラフラグをいじっていました。Dumpbin は、私が理解している範囲では、私が理解できることを示唆していません。私はえーを望んでいた

0 投票する
1 に答える
150 参照

c++ - Multiply Defined Symbolエラーを生成せずに、名前空間のコンテンツをプロジェクト全体で利用できるようにするにはどうすればよいですか?

私はかなり大きなビデオゲームを作ろうとしています。マウス入力を処理する現在の方法は、mouseX、mouseY、および列挙型mouseStateを、マウスの知識を必要とするすべての単一オブジェクトの更新関数への引数として渡すことです。かなり面倒です。Input::mouseXなどでアクセスできるように、Inputという名前空間にマウス変数を配置して、マウス変数をよりグローバルにしたいと思います。

現在のところ、名前空間InputはInput.hに存在します(以下の内容)

2つのメンバー関数はInput.cppで定義されています

Input.hをメインループオブジェクトのヘッダーCore.hに含めると、リンカーはヒッシーフィットをスローします。これは、Input.hに含まれるすべてのものがMultiplyDefinedSymbolになっているためです。私の知る限り、名前空間の使用に明白な間違いはなく、LNK2005のエラーコードプレフィックスがリンカー(?)に関係しているように見えるため、ヘッダーファイルの使用に明らかに問題があります。

誰かが私のジレンマに光を当てることができれば、私は最も感謝します

0 投票する
1 に答える
390 参照

c++ - #include、エラー LNK2005

Alirhgt、私はこれを mysref から整理しようとしましたが、できません。だから、コンソールでペイントプログラムを構築するタスクがあり、コンソールを扱う一連の関数があります。私の仕事は、それらを論理的に接続して何か役に立つことだけです。問題は、与えられた 2 つのファイル (.h ファイルと .cpp ファイル) を #include するたびに、それらが既に定義されているという LNK2005 エラーが発生することです。ヘッダーファイルのみを含めると、関数は何もしません(1つの関数を使用しようとしましたが、コンソールは何もせずにそこに立っていました)。誰が私が間違っているのか教えてもらえますか? 私は C++ を少し使っていないので、ばかげた間違いをしている可能性があります。

0 投票する
1 に答える
16242 参照

c++ - LNK2005 (定義済み)

21728517 人がこれについて助けを求めているのを見たことがあると思いますが、これについて検索して読んだ後、私は本当にこれを理解できません. このエラーは知っていますが、以前にも見たことがありますが、今回は回避できないようです。

このチェックリストも試しました。

したがって、エラー:

つまり、これらは適切な #ifndef #define #endif を使用して「misc.h」で定義された関数です。それらは他の場所では定義されていませんが、それでも LNK2005 の死が発生します。私は何を間違っていますか?

前もって感謝します。

0 投票する
2 に答える
12041 参照

c++ - C++でパブリック静的変数を宣言するときのリンクエラー

可変構成パラメーターを持つこのクラスがあります。他のクラスJugadorHumanoに含めたい:、、、、、。JugadorIAMainPartidaClasicaPartidaMision

私が欲しいのは、他のクラスから値を変更または読み取ることができるようにすることです。静的変数を宣言して宣言で定義することはできません。「未解決の外部」エラーが発生するため、定義なしでその変数を許可することもできません。

私が得るこの再定義を避けるために私は何をすべきですか?私はそれを理解することができず、同様の問題を見つけることができません。

0 投票する
2 に答える
17128 参照

c++ - 標準ライブラリは lib で既に定義されているため、リンカ エラーが発生します

ここで何が間違っているのかわかりませんが、私が持っていると言います:

foo.h

foo.cpp

そして、関連するヘッダー (foo.h) と共にその lib を別のプロジェクトに含め、foo のインスタンスを呼び出そうとすると、それを lib としてコンパイルします。

次のようなリンカ エラーが表示されます。

エラー 1 エラー LNK2005: "public: __thiscall std::_Container_base12::~_Container_base12(void)" (??1_Container_base12@std@@QAE@XZ) は既に foo.lib(foo.obj) C:\foo\msvcprtd で定義されています.lib(MSVCP100D.dll) フットテスト

なぜこれが起こるのですか?

0 投票する
2 に答える
985 参照

c++ - LNK2005:/MTで構築されたモジュールを検索します

C ++プロジェクト(mapserver)をビルドしようとしています。それは他のいくつかのプロジェクトに依存します。

を実行するnmakeと、次のような多くのエラーが表示されます。

プロジェクトごとに異なる場合のオプションが原因/MDであることがわかっています。/MT

すべてのプロジェクトのビルドファイルを確認しましたが、が付いているファイルは1つだけでした/MT。に変更して/MD再構築しましたが、エラーが残りました。

ライブラリを見つける方法はこのエラーを引き起こしましたか?

全てに感謝!

PSプロジェクトリスト:

zlib