c – 如何在头文件中声明要在两个.cpp中使用的变量?
发布时间:2020-12-16 10:40:00 所属栏目:百科 来源:网络整理
导读:我的目标模块是一个可以从X.cpp和Y.cpp构建的可执行文件,这两个文件都需要一个共同的.h文件: extern HANDLE hPipe;extern IMediaSample *pSave = NULL; 但是当我构建模块时,我得到一个错误说: Y.obj : error LNK2005: "struct IMediaSample * pSave" (?pSa
我的目标模块是一个可以从X.cpp和Y.cpp构建的可执行文件,这两个文件都需要一个共同的.h文件:
extern HANDLE hPipe; extern IMediaSample *pSave = NULL; 但是当我构建模块时,我得到一个错误说: Y.obj : error LNK2005: "struct IMediaSample * pSave" (?pSave@@3PAUIMediaSample@@A) already defined in X.obj 如何解决这个问题? 解决方法extern IMediaSample *pSave = NULL; 这不仅仅是一个声明.这将pSave定义为NULL.由于.cpp都包含.h,因此该变量将以2个转换单位定义,从而导致冲突. 你应该把它重写为 extern IMediaSample *pSave; 在.h中,然后添加IMediaSample * pSave = NULL;恰好是其中一个.cpps. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |