使用 mt19937 的静脉错误

Veins error using mt19937

我正在尝试使用 mt19937 在 Veins 上为我的 node/vehicle class 生成(好的)随机数。当我为每辆车使用一个 mt19937 时,他工作,但是当我设置为静态时(一个 mt19937 用于所有汽车)他不工作

static mt19937 mt;

使用mt时出现一处错误:

uniform_int_distribution <int> unif_dist(1, 100);
...
return unif_dist(mt);

错误:

Error in module (cModule) vehDist_rsu (id=48) during network setup: Class "Veins::ObstacleControl" not found -- perhaps its code was not linked in, or the class wasn't registered with Register_Class(), or in the case of modules and channels, with Define_Module()/Define_Channel().

Error during network cleanup: Model error: ASSERT: condition vect[i]==NULL false in function deleteNetwork, csimulation.cc line 437.

我尝试用 1 and 解决,但没有成功。

我将我的 Veins 更新为 Veins 4.4,在 BaseWaveApplLayer.h 中将 mt19937 设置为静态:

static mt19937 mt;

在我的车里定义他class:

mt19937 BaseWaveApplLayer::mt_veh;

并在classBaseWaveApplLayer中使用他:

uniform_int_distribution <int> dist(0, 100);
int valueSelected = dist(mt_veh);

感谢大家的帮助:)!