2017-02-03 76 views
0

我創建了一個包含MiXiM的項目。 的問題是,當我建立這個項目我得到這個錯誤:MiXiM包含錯誤

/MiXiM/src/base/connectionManager/ConnectionManagerAccess.h:40:26: fatal error: BaseMobility.h: No such file or directory 

我不明白。這個問題似乎與MiXiM庫相關,但如果關閉了我的項目,我可以成功編譯每個MiXiM示例。

這是一個錯誤還是我做錯了什麼?

+0

應該在'base/modules /'目錄下。 (按照https://github.com/olafur/mixim/blob/master/base/modules/BaseMobility.h)'make VERBOSE = 1'來查看編譯器的include目錄是否包含這個目錄。 – fritzone

+0

我現在使用了一個不同的mixim倉庫(因爲我使用的倉庫不包括BaseMobility.h),但是當我建立它時,我得到這個錯誤: 'propagation/UWBIRIEEE802154APathlossModel.h:120:31:error:'constexpr'需要靜態數據成員'const double UWBIRIEEE802154APathlossModel :: PL0'非整數類型[-fmissmissive]的類內初始化' – brid

回答

1

您可能正在嘗試用最新版本的OMNeT ++(5.0或更高版本?)構建MiXiM。由於5.0 OMNeT ++不會將源樹中的所有目錄作爲包含目錄逐個添加。僅添加源文件夾的根目錄。這意味着包含其他目錄以外的其他頭文件的所有文件必須以相對於源文件夾根目錄的路徑作爲前綴。將所有目錄添加到包含路徑是一個非常糟糕的主意,並且已從OMNeT 5中刪除。

這會導致下一個問題:爲什麼使用早已放棄的MiXiM,並將其大部分功能合併到INET 3 。X?爲什麼不INET?

+0

不,我使用OMNeT ++ 4.6完全是出於兼容性原因,實際上它與任何MiXiM示例。 但是,我現在切換到OMNeT ++ 5.1,並試圖瞭解如何實現相同的事情。有些東西不見了,我想了解如何克服這一點。 – brid

0

我不知道,如果我可以幫助你,但我也有同樣的經歷。

如果您嘗試在MIXIM中使用不同版本執行舊項目,則會出現此錯誤。例如,在MIXIM-2.2.1中有BaseMobility;但在MIXIM-2.3中有MobilityBase。因此,如果您的項目是用MIXIM-2.2.1編寫的,則應該根據MIXIM-2.3進行更改。