我正在使用两个不同的c++库。两个库都使用一个名为fofo的类型。在lib1.h:中
typedef short fofo;
在lib2.h:中
namespace LIB2
{
typedef struct
{
uint16_t toto;
} fofo;
}
using LIB2::fofo;
我有一个C++项目/VS2008,它使用了两个库:当我在我的项目
#include lib1.h
我得到错误:错误C2874:使用声明导致多个声明
我想在我的项目中使用这两个库,但不对这些库进行任何更改。我唯一可以修改的是我的VS2008项目。谢谢你的帮助!
这个(脏的(解决方法可能会起作用(取决于标头的使用方式(
与其直接包含lib1.h,不如通过制作一个新的头文件来包装它
lib1wrapped.h
#define fofo fofo_wrap
#include "lib1.h" // OR <lib1.h>
#undef fofo