据我了解,此错误是由于当您有多个文件(包括同一个文件)时未正确使用标头保护引起的。就我而言,这是导致错误的包含树:
File A includes Z, which contains the functions I need. File B includes A, and file C includes A.
没有任何#pragma once
's,程序给出了相同错误的一堆变体:
blahblah.obj: error LNK2005: class some::namespace::ObjectType Object already
defined in dialogDlg.obj
我只是想知道,鉴于我描述的包含树,正确编译它的正确方法是什么?
我尝试#pragma once
在文件 Z 上使用,但没有奏效。我还在文件 A 上尝试过 #pragma 一次,但也没有用。最后我在A和Z上都试过了,也没有用。