解决 multiple definition of***
来源:互联网 发布:软件项目风险控制 编辑:程序博客网 时间:2024/05/16 11:10
假设前提:a.h头文件包含了全局变量,可能是变量也可能是函数,其他的多个C文件都需要调用a.h文件,编译时就会报错: multiple definition of ***
原因在于:由于工程中的每个文件都是独立的解释的,
(即使头文件有
#ifndef _x_h
....
#enfif )
在其他文件中只要包含了此头文件就会独立的解释,然后生成每个文件独立的标示符。在编译器连接时,就会将工程中所有的符号整合在一起,由于,文件中有重名变量,于是就出现了重复定义的错误。
解决办法:建立一个a.c文件,将全局变量的各种具体定义放在此C文件中,然后在a.h文件用extern进行变量全局引用,从而解除错误。
比如:其他的C文件需要结构体bb变量,我们可以将其定义到a.c文件中
struct aa
{
............
};
struct aa bb;
我们再在a.h文件全局引用bb变量
extern struct aa bb;
引用的时候不能够有定义的具体数值。
- 解决 multiple definition of
- 解决 multiple definition of
- 解决multiple definition of
- 解决 multiple definition of***
- 解决 multiple definition of
- 解决 multiple definition of
- 解决 multiple definition of
- 解决 multiple definition of
- 解决 multiple definition of
- 解决 multiple definition of
- 解决 multiple definition of 问题
- 解决multiple definition of sqlca的问题
- 解决multiple definition of的方法
- multiple definition of错误的解决
- 解决multiple definition of的方法
- C++ 解决 multiple definition of & previous definition here编译错误
- "multiple definition of" 错误
- multiple definition of...
- Qt之Ui文件的使用及DLL动态链接库的创建
- Java学习笔记八
- 在游戏界,就有了些游戏界的理解。不过本文是对某游戏开发商的信
- [38]Count and Say
- 搭建WAMP
- 解决 multiple definition of***
- Java学习笔记九
- Android中Activity共享变量的另一方法:Application context
- ClassLoader介绍
- 修改win7和debian双系统的开机启动顺序
- jQueryEasyUI Messager基本使用
- fedora14修改root登录方式
- Java学习笔记十
- 学习吧~~~