使用到的2個庫文件,重複定義了同名的數據類型。
1、在後一個引用的定義的地方(比如uint64這個類型被重複定義)
#ifdef uint64
#undef uint64
#define unsigned long long uint64
將前一個定義“undefine”,重新定義一個。這個要求衝突的2個定義必須是相同類型(都是unsigned long long),不然前一個文件中使用到的地方就會報錯。
2、新建一箇中間文件,interface.h和interface.cc
在.h文件中,定義新的數據類型和方法,內容爲使用到的庫2的數據類型和方法。在其他文件調用庫2方法的地方,全部轉換爲調用.h中新定義的數據類型和方法。其中void myset()函數內部調用庫2中的方法。
class interface{
public:
struct a{
sss
}
void myset();
在.cc文件中
#include "interface.h"
extern {
庫2.h
}
extern 庫2的數據類型
extern 庫2中使用到的方法
void interface::myset(){
庫2中的方法;
}
通過這種方法將庫2和使用的地方隔離開來,完全通過interface來中轉。