据我所知,当您有多个文件包括相同的文件时,此错误是由未正确使用头文件保护引起的。在我的情况下,这是导致错误的包含树:
文件A包含Z,其中包含我需要的函数。文件B包括A,文件C也包括A。
如果没有任何#pragma once,程序会给出许多相同错误的变体:
我只是想知道,根据我描述的包含树,正确的编译方式是什么?
我尝试在文件Z上使用#pragma once,但没有起作用。我还尝试在文件A上使用#pragma once,也没有起作用。最后,我尝试在A和Z上都使用,也没有起作用。
文件A包含Z,其中包含我需要的函数。文件B包括A,文件C也包括A。
如果没有任何#pragma once,程序会给出许多相同错误的变体:
blahblah.obj: error LNK2005: class some::namespace::ObjectType Object already
defined in dialogDlg.obj
我只是想知道,根据我描述的包含树,正确的编译方式是什么?
我尝试在文件Z上使用#pragma once,但没有起作用。我还尝试在文件A上使用#pragma once,也没有起作用。最后,我尝试在A和Z上都使用,也没有起作用。