1

私はCプロジェクトに取り組んでおり、C++ で使用できるプリプロセッサ ガードを使用しようとしています。

#ifndef CONFIG_H
#define CONFIG_H

... exciting stuff in C ....

#endif

などの特定のファイルを複数のファイルに含めるとConfig.h、コンパイラは次のエラーを表示します。

1>main.obj : error LNK2005: _OPCodes already defined in lib.obj
1>main.obj : error LNK2005: _OPTotal already defined in lib.obj
1>main.obj : error LNK2005: _RegCodes already defined in lib.obj
1>main.obj : error LNK2005: _RegTotal already defined in lib.obj
1>main.obj : error LNK2005: _UDSTotal already defined in lib.obj

誰かが私にこれについての指針を教えてもらえますか(しゃれは意図していません)。

4

4 に答える 4

4

編集: これは、タイプミスがあった元の投稿に基づいています。どうやら、それはOPの本当の問題ではありません。

警備員に 2 つの異なる名前を付けました。それらは一致する必要があります。

#ifndef CONFIG_H
#define CONFIG_H  // not CONFIG_G!
于 2013-04-10T06:55:25.230 に答える
2
#ifndef CONFIG_H
#define CONFIG_G

... exciting stuff in C ....

#endif

「既に定義されたエラー」が発生しているため、タイプミスです

ヘッダー ファイルで CONFIG_H の代わりに CONFIG_G を定義しているため、次のソース ファイルから #ifndef CONFIG_H が true になるため、同じ内容が再び含まれます。

于 2013-04-10T06:59:13.513 に答える