a multiple ofdefinition of问题求教

哈哈菜鸟开始学C++,这个错误比較低级希望以后不会再犯了。


  • 类型:办公软件大小:257KB语言:中攵 评分:7.5

当多个文件包含同一个头文件时并且你的.H里面没有加上条件编译
就会独立的解释,然后生成每个文件生成独立的标示符。在编译器连接时就会将工程中所有的符号整合在一起,由于文件中有重名变量,于是就出现了重复定义的错误

给每一个头文件加上条件编譯,避免该文件被多次引用时被多次解释这是个应该是习惯。这个方法会解决大部分低级问题


当方法1无效时,可以把所有的全局变量放入一个头文件 global.h (名字随意起但要加条件编译)中,每一个变量前面加extern声明一下这些变量将在其它文件中定义。 然后建立一个和头文件名芓对应的.c or .cpp文件 如global.c在里面声明所有的全局变量。例如:void(*Handl_Display)();
然后让涉及到全局变量的文件include ”global.h“。这样编译时会先对global.c编译生成一个global.o ,然后再囷其它文件的.o链接生成可执行文件
懒人方法,在所有的全局变量前加上static 声明成静止变量。也能解决问题

版权声明:本文为博主原创文章未经博主允许不得转载。 /u/article/details/

学习C++两年有余但是还是菜鸟级别,实是愧疚以前也碰到了不少问题,但是都没形成书面的总结从今日起,将对所学知识所遇问题进行总结

在今天编写编译器过程中遇到了a multiple ofdefinition of 的问题,而且还不止一个:

问题一:如下两段代码之间存在上述错误且错误点就在代码段2的函数实现处。

问题2:问题的描述省略

解决方案:若存在a multiple ofdefinition of的错误,你首先要检查的是你的函数定义和函数实现是否分开若没有分开,那么分开实现基本就能解决问题当然其他文件的必须也是包含.h文件。

我要回帖

更多关于 a multiple of 的文章

 

随机推荐