LNK2005原因与解决办法

2014年10月5日 由 Creater 留言 »

代码为LNK2005的链接错误一般是某个头文件被多次包含导致,有时候在编译阶段也会由头文件多个地方包含引起错误,一般解决方法如下:

#ifndef _XX_头文件.H
#define _XX_头文件.H
int A;
#endif

但是针对链接2005出错则不行,可以的解决方案是:

  • 1.在源文件中定义,在头文件中extern中声明;
  • 2.在头文件中定义函数,并在前面加上MY_INLINE,这样普通函数也会被内联或者静态处理。
  • #ifndef MY_INLINE
    #if defined __cplusplus
        #define MY_INLINE inline
    #elif (defined WIN32 || defined _WIN32 || defined WIN64 || defined _WIN64 || defined WINCE) && !defined __GNUC__
        #define MY_INLINE __inline
    #else
        #define MY_INLINE static
    #endif
广告位

发表评论

你必须 登陆 方可发表评论.