加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读