项目场景:
优化x264帧内预测,加入一些判断函数
问题描述
encoder.c 已经#include "analyse.h" , 在analyse.c里定义一个全局变量后,编译时报错:multiple definition
原因分析:
编译时,analyse.c会先定义这个全局变量,
然后encoder.c因为#include “analyse.h”,会再一次定义此全局变量,从而编译器报错:multiple definition
解决方案:
在另一个未被encoder.c包含的.c文件定义这个全局变量,之后在encoder.c中用extern声明。编译无报错。
之前尝试了这篇文章的方法(http://t.csdn.cn/ZCYNO),虽然很多文章都是这个方法,但我编译时依然错误。
这篇文章的方法如下图。
正确的方法应该是,
a.h不需要加extern int ckx;
b.c里不需要include“ a .h”,只需要extern int ckx申明变量(不是定义)