两个不同的库使用相同的名称类型
two different libraries using the same name types
我正在使用两个不同的 C++ 库。这两个库都使用类型的名称,比方说,称为 fofo。
在 lib1.h 中:
typedef short fofo;
在lib2.h中:
namespace LIB2
{
typedef struct
{
uint16_t toto;
} fofo;
}
using LIB2::fofo;
我有一个使用这两个库的 C++ project/VS 2008:
当我在我的项目中做的时候
#include lib1.h
我收到错误:错误 C2874:使用声明导致多重声明
我想在我的项目中使用这两个库,但不对这些库进行任何更改。我唯一可以修改的是我的 VS2008 项目。感谢您的帮助!
这个(肮脏的)解决方法可能会起作用(取决于 headers 的使用方式)
不是直接包含 lib1.h,而是通过制作一个新的头文件来包装它
lib1wrapped.h
#define fofo fofo_wrap
#include "lib1.h" // OR <lib1.h>
#undef fofo
我正在使用两个不同的 C++ 库。这两个库都使用类型的名称,比方说,称为 fofo。 在 lib1.h 中:
typedef short fofo;
在lib2.h中:
namespace LIB2
{
typedef struct
{
uint16_t toto;
} fofo;
}
using LIB2::fofo;
我有一个使用这两个库的 C++ project/VS 2008: 当我在我的项目中做的时候
#include lib1.h
我收到错误:错误 C2874:使用声明导致多重声明
我想在我的项目中使用这两个库,但不对这些库进行任何更改。我唯一可以修改的是我的 VS2008 项目。感谢您的帮助!
这个(肮脏的)解决方法可能会起作用(取决于 headers 的使用方式)
不是直接包含 lib1.h,而是通过制作一个新的头文件来包装它
lib1wrapped.h
#define fofo fofo_wrap
#include "lib1.h" // OR <lib1.h>
#undef fofo