当前位置:编程学习 > C/C++ >>

c++ 头文件重定易做图决心得

    最近在做开发的时候用到很多自己编写的头文件,这样很容易出现 error LNK2005,经过查阅资料,发现网上很多资料都是转载同一个地方的,而当时阅读时一些不明白的地方费了一番周折,不过最终把问题解决了。

      网上也有很多五花八门的解决方案,这里总结一种可行的。开发环境为 VS 2008。

      首先,尽量保证在头文件中只声明变量和函数,不要定义。这个很重要,不然链接时候会出现麻烦。不仅是变量不定义,函数也不要出现定义,但可以出现声明。

    其次,如果以上问题解决后,还有 error LNK2005,那就在每个头文件中作如下修改:

          1、在头文件的开头加入

                           #ifndef _HEAD_H_     //如果没有定义这个宏
                           #define _HEAD_H_     //定义这个宏

          2、在头文件末尾加入

                           #endif

           这样加入之后的头文件内容为:

                        #ifndef _HEAD_H_     //如果没有定义这个宏
                        #define _HEAD_H_     //定义这个宏

                        。。。。。//此处为头文件原来的内容


                         #endif

          说明:加入上述信息的目的是告诉链接程序,该头文件只能被链接一次,这样就可以避免重定义问题。对于宏名字,(此处为 _HEAD_H_)选取的问题,要保证所有头文件中的名字不同,不然链接程序定义具有相同名字的某个头文件之后,所有含有相同宏名字的头文件都不会再被链接。通常的一个命名方法是,把头文件名全部大写,然后前后加上 _ ,再用 _ 替换 . ,如头文件为 title.h,则命名为: _TITIE_H_

        经过这两步,基本error LNK 2005 就解决了。

       仅供初学者参考,如有问题请留言。


 

补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,