Veins(車載通信仿真框架)入門教程(二)——調用第三方庫

Veins(車載通信仿真框架)入門教程(二)——調用第三方庫

在藉助Veins進行自己的研究時我們經常需要實現一些比較複雜的功能,有時就需要藉助第三方庫的幫助。
博主的研究需要使用神經網絡,但是自己編寫的效果不佳,便藉助了第三方庫mlpack

注意:因爲Veins基於OMNeT++運行,而OMNeT++又是基於C++的,所以我們找的第三方庫也應當是基於C++的。這樣做的好處是如果第三方庫內一些文件有問題、調用失敗或者你需要加入自己的功能,可以直接copy進你的項目文件裏更改後調用。

以Veins自帶的examples爲例

安裝第三方庫後,在程序內通過include引用相應文件
比如:

#include <mlpack/prereqs.hpp>

之後若採取“右鍵點擊veins-4.6/examples/veins/omnetpp.ini選擇Run As > OMNeT++ simulation”的方式運行仿真程序,則會報錯“Error: Cannot load library '../..src//libveins.so'

其實我們只要換一種啓動方式即可,進入veins-4.6/examples/veins/omnetpp.ini文件夾,右鍵開啓終端後輸入如下代碼(執行代碼1)即可正常啓動:

opp_run -m -n ../../examples/veins:.:../../src/veins --imag-path=../../images -l /usr/local/lib/libmlpack.so -l ../../src/veins omnetpp.ini

其實通過OMNeT++右鍵點擊啓動實際上是執行了如下代碼(執行代碼2):

opp_run -m -n ../../examples/veins:.:../../src/veins --imag-path=../../images -l ../../src/veins omnetpp.ini

在你引用第三方庫後,OMNeT++默認的執行代碼2缺少了對第三方庫的引用所以報錯,也就是執行代碼1內的-l /usr/local/lib/libmlpack.so(此處博主對mlpack的so庫進行調用,讀者自行更改爲自己所需的庫,當然注意文件路徑也要更換)

相關內容其實在OMNeT++的說明文件裏有記錄:
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章