在Linux下写代码,自己写makefile,结果编译时出现重定义问题,开始检查发现每个头文件都有使用条件编译来防止重定义,迷茫了一会,看代码,发现在一个头文件中定义一个变量时引发这个问题,将此变量声明为static静态变量后就解决问题了,故以后最好将要使用的全局变量单独写到一个头文件中,或者声明为静态变量。
</pre><pre name="code" class="cpp">#ifndef __POLICY_H_
#define __POLICY_H_
#include <stdlib.h>
/*class policy
{
public:
void policy_handle(char* buffer)=0;
void notify(long int new_bps)=0;
long int get_bps=0;
long int get_old_bps=0;
};
*/
class openflow_policy
{
public:
openflow_policy();
virtual void policy_handle(char* buffer);
virtual void notify(long int new_bps);
virtual long int get_bps();
virt