Linux 防止多重定义

在Linux环境下编写代码并自定义makefile时,遇到编译时的重定义错误。通过检查发现,尽管头文件使用了条件编译防止重定义,但问题源于在一个头文件中定义的全局变量。解决方案是将该变量声明为`static`静态变量,或者将所有全局变量集中到单独的头文件中。这样可以避免因包含多个源文件而导致的全局变量重定义问题。
摘要由CSDN通过智能技术生成

在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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值