zl程序教程

您现在的位置是:首页 >  后端

当前栏目

解决C++中multiple definition of问题(二十三)

C++ 解决 of multiple 二十三 definition 问题
2023-09-14 09:09:58 时间

1.代码示例  

1.global.h
#ifndef _GLOBAL_H
#define _FACEDETECT_H
   struct People{
     string name;
     int age;
   }p_info;
#endif

2.global.cpp实现函数包含global.h头文件
  #include "global.h"

3.test.cpp测试函数包含global.h头文件
#include "global.h"

在编译的时候就会出错:
first defined here 
multiple definition of ‘pinfo’

原因是因为在多次包含global.h时重复定义了结构体变量pinfo,即使包含了#ifndef也一样报错。

解决方法:
1.在global.cpp实现函数里加入
#include "global.h"
struct People p_info;

2. 在global.h里修改
#ifndef _GLOBAL_H
#define _FACEDETECT_H
struct People{
   string name;
   int age;
};
 extern struct People p_info;   
   
#endif

3.3.test.cpp测试函数无需修改.
#include "global.h"

到此问题解决!!!