把全局变量定义在.h文件中的引起连接错误的原因以及解决办法
2005-12-21 17:16
603 查看
把全局变量定义在.h文件中的引起连接错误的原因以及解决办法:原因:如果在a.h中定义了int test变量, 在被include到main.cpp中的时候会造成link error;由cl a.cpp, cl main.cpp生成的a.obj, main.obj, 在两个obj文件中都有test定义, 连接时发生错误.解决办法:在a.h文件中使用extern int test; 相应的a.cpp文件中定义test: int test;这种是标准的用法. 生成的obj文件中仅有a.obj中有test符号信息, main.obj没有.从而不再出现连接错误; 再次,声明多次是没有关系的, 但是定义多次会出现错误!其他:一般.h文件仅仅是用作变量,函数等声明, 不作变量,函数定义. .cpp文件则作定义以及实现.关键是要理解编译器处理头文件的过程. 如果经常用命令行,如gcc编译代码的话, 应该比较容易理解.
相关文章推荐
- 详解keil采用C语言模块化编程时全局变量、结构体的定义、声明以及头文件包含的处理方法!
- cocos2d-x 关于无法找到gl/gl.h头文件错误,以及r.java无法生成解决办法
- 关于多文件引用头文件变量重复定义的解决办法【BCB2010环境】
- mysql数据库连接过多的错误,可能的原因分析及解决办法
- 错误"ORA-04091: table is mutating, trigger/function may not see it"的原因以及解决办法
- microsoft sql server 2008在64位win7上安装后服务器名称为空以及登录错误:无法连接到(local)的解决办法
- aspx页有控件,但后台取不到,且报重复定义的错误原因及解决办法。
- "跟远程计算机的连接被打断.这可能是网络错误引起的"的解决办法
- cocos2d-x 关于无法找到gl/gl.h头文件错误,以及r.java无法生成解决办法
- 全局变量的定义,以及如何处理头文件包含关系
- windows 7的IIS安装配置以及关于ASP+access数据库连接错误的解决办法
- Win10更新提示错误0x8024402f的原因以及解决办法
- ASP.NET和SQL Server 2005连接出现的错误以及解决办法
- Microsoft VBScript 运行时错误 '800a01f4' 变量未定义: 'upload_5xSoft' 的解决办法
- Android 如何push文件到system分区,remount system分区,以及cross-device link错误解决办法
- SQL server2000 安装文件挂起错误的解决办法(已修复连接)
- jquery ajax 异步调用方法中不能给全局变量赋值的原因及解决办法
- 解决多重定义问题/如何声明全局变量让多个cpp文件使用
- jquery ajax done 函数 异步调用方法中不能给全局变量赋值的原因及解决办法
- 详解keil采用C语言模块化编程时全局变量、结构体的定义、声明以及头文件包含的处理方法!