"class CString path_current" (?path_current@@3VCString@@A) already defined in YuLunSystem.obj"
把CString path_current把放在一个单独的头文件里面链接时就会抱这种错 ,把它放在.cpp文件里就不抱错,奇怪?

解决方案 »

  1.   

    头文件声明extern,cpp文件定义。
      

  2.   

    头文件中不要放定义。会发生重定义错误的。头文件中应该只放声明,比如函数或全局变量的extern声明、类定义、内联函数、模板定义等等。
    因为头文件是给CPP包含的,因此很可能有两个以上的CPP文件包含了同一个头,所以如果里边放定义性的东西(主要是非内联函数和全局变量)必然引起重复定义错误。