您的位置:首页 > 其它

把全局变量定义在.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编译代码的话, 应该比较容易理解.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐