最近在写PSO算法过程中,在头文件中定义了两个全局变量:
pso算法文件结果如下:
在PSO.h文件中定义如下两个全局变量 :
ouble lastGlobal =0; // 上一次迭代中种群中的最优值
double curGlobal =0; // 本次迭代中种群中的最优值
然后在vs2015中进行编译,发现报错如下:
PSO.obj : error LNK2005: _lastGlobal already defined in main.obj
1>PSO.obj : error LNK2005: _curGlobal already defined in main.obj
1>B:\PROGRAMPROJECT\visual 2015 pro\PSO\Debug\PSO.exe : fatal error LNK1169: one or more multiply defined symbols found
回想到头文件中,开头写上了:
#ifndef _PSO_H_
#define _PSO_H_
......
...
#endif
不是说这玩意能防止重复编译?难道我记错了,于是网上一度查找,看到下面这文章的评论区。
https://blog.csdn.net/abc5382334/article/details/18052757
感谢大佬!