我创建了一个包含MiXiM的项目。 的问题是,当我建立这个项目我得到这个错误:MiXiM包含错误
/MiXiM/src/base/connectionManager/ConnectionManagerAccess.h:40:26: fatal error: BaseMobility.h: No such file or directory
我不明白。这个问题似乎与MiXiM库相关,但如果关闭了我的项目,我可以成功编译每个MiXiM示例。
这是一个错误还是我做错了什么?
我创建了一个包含MiXiM的项目。 的问题是,当我建立这个项目我得到这个错误:MiXiM包含错误
/MiXiM/src/base/connectionManager/ConnectionManagerAccess.h:40:26: fatal error: BaseMobility.h: No such file or directory
我不明白。这个问题似乎与MiXiM库相关,但如果关闭了我的项目,我可以成功编译每个MiXiM示例。
这是一个错误还是我做错了什么?
您可能正在尝试用最新版本的OMNeT ++(5.0或更高版本?)构建MiXiM。由于5.0 OMNeT ++不会将源树中的所有目录作为包含目录逐个添加。仅添加源文件夹的根目录。这意味着包含其他目录以外的其他头文件的所有文件必须以相对于源文件夹根目录的路径作为前缀。将所有目录添加到包含路径是一个非常糟糕的主意,并且已从OMNeT 5中删除。
这会导致下一个问题:为什么使用早已放弃的MiXiM,并将其大部分功能合并到INET 3 。X?为什么不INET?
不,我使用OMNeT ++ 4.6完全是出于兼容性原因,实际上它与任何MiXiM示例。 但是,我现在切换到OMNeT ++ 5.1,并试图了解如何实现相同的事情。有些东西不见了,我想了解如何克服这一点。 – brid
我不知道,如果我可以帮助你,但我也有同样的经历。
如果您尝试在MIXIM中使用不同版本执行旧项目,则会出现此错误。例如,在MIXIM-2.2.1中有BaseMobility;但在MIXIM-2.3中有MobilityBase。因此,如果您的项目是用MIXIM-2.2.1编写的,则应该根据MIXIM-2.3进行更改。
应该在'base/modules /'目录下。 (按照https://github.com/olafur/mixim/blob/master/base/modules/BaseMobility.h)'make VERBOSE = 1'来查看编译器的include目录是否包含这个目录。 – fritzone
我现在使用了一个不同的mixim仓库(因为我使用的仓库不包括BaseMobility.h),但是当我建立它时,我得到这个错误: 'propagation/UWBIRIEEE802154APathlossModel.h:120:31:error:'constexpr'需要静态数据成员'const double UWBIRIEEE802154APathlossModel :: PL0'非整数类型[-fmissmissive]的类内初始化' – brid