我想避免从两个不同的包含文件重新定义如下:
文件ABC.h
extern int v=1;
文件foo.h
#include "ABC.h"
class Foo
#ifdef BLA
: public ABC
#endif
{
...
};
文件bar.h
extern int v=3;
主要的:
#define BLA
#include <foo.h>
#include <bar.h>
基本上foo
是我自己写的一个类,bar
是一个第三方库。但这似乎不起作用。我应该如何解决问题?
抱歉,这有点难以描述,这个例子有点糟糕,因为冲突的部分实际上不是变量,而是类似#define
并包裹在大块代码中的东西(错误消息是:“__vector_17'的多重定义”)。有没有办法在不使用命名空间的情况下解决它?