2015-09-21 31 views
1

不能在OMNET ++項目加載庫我有一個OMNET ++項目,CSW,即通過項目 - >屬性 - >項目參考參考其他OMNET ++項目。<!>錯誤:在使用sqlite3的

參考項目CB_CSW_Vehicle工作正常。我爲此項目打標項目 - >屬性 - > OMNET ++ - > Makemake->選項 - >目標共享庫。所以我有一個libCB_CSW_Vehicle.dll,主項目CSW使用。從CSW模擬運行,使用CB_CSW_Vehicle沒有問題。

參考其他項目CB_CSW_Cloud,不起作用。我做了同樣的步驟吧:

  1. 標誌着「創建共享庫」 OMNET ++ - > Makemake->選項 - >目標
  2. 檢查項目CB_CSW_Cloud屬性 - >項目主體工程的參考

我可以建立我的主要項目CSW。我也可以建立libCB_CSW_Cloud.dll。當我運行從項目CSW模擬,我收到一個錯誤:

<!> Error during startup: Cannot load library '../../../CB_CSW_Cloud/src//libCB_CSW_Cloud.dll': The operation completed successfully. 

這兩個項目之間的唯一區別是,CB_CSW_Cloud使用sqlite3的庫。我把它添加到項目中有以下步驟:

  1. 設置項目 - >屬性 - > OMNET ++ - > Makemake->選項 - >鏈接 - >附加庫與(-l選項)鏈接:的sqlite3
  2. 設置項目 - >屬性 - > C/C++常規 - >路徑和Symbols->庫路徑C:/ SQLite的

由於我沒有收到一些確切的消息,爲什麼libCB_CSW_Cloud未加載,我不知道是什麼原因導致的問題。我以完全相同的方式使用它,因爲其他項目CB_CSW_Vehicle,工作。這導致我的建議,即庫導致該問題。可能嗎?一個項目CSW有參考其他項目CB_CSW_Cloud,它本身使用庫sqlite3?或者我還應該將此庫添加到CSW

你能幫我運行CSW項目嗎?

更新:我解決我的問題與添加的sqlite3庫運行配置和複製CB_CSW_CloudCB_CSW_Vehicle項目的源代碼以CSW項目。在OMNET ++中有很多項目是非常困難的。

回答

1

您必須添加鏈接到sqlite3運行配置CSW項目。去Run | Run Configurations... | Main選項卡| More>>Dynamic libraries寫入到sqlite3庫的路徑。請注意,路徑必須是相對於工作目錄的,並且沒有dll後綴,而沒有lib前綴。
如果sqlite3dll文件不包含lib前綴,請嘗試重命名它(例如從sqlite3.dll轉換爲libsqlite3.dll)。

+0

如果我將路徑添加到'$ {opp_shared_libs:/ CBCSWSim/simulations/avspeedaggreg/path}'我收到一個錯誤,它不是現有的文件夾或文件。 – Alex

+0

錯誤是:'$ {opp_shared_libs}的參數需要是現有的文件,文件夾或項目' – Alex

+0

該路徑必須包含文件名。例如:如果你想加載庫'c:\ sqlite3 \ libfoo.dll',你的工作目錄是'c:\ omnetpp \ CBCSWSim \ simulations \ avspeedaggreg',那麼你應該寫:'../ .. /../../ sqlite3/foo',不帶'$ {opp_shared_libs:....'。 –

相關問題