【发布时间】:2015-09-21 12:58:45
【问题描述】:
我有一个 OMNET++ 项目,CSW,它通过 Project->Properties->Project References 引用其他 OMNET++ 项目。
对项目 CB_CSW_Vehicle 的引用工作正常。我将此项目 Project->Properties->OMNET++->Makemake->Options->Target 标记为 shared library。所以我有一个libCB_CSW_Vehicle.dll,它被主项目CSW使用。 CSW 的模拟运行,使用 CB_CSW_Vehicle 没有问题。
对其他项目 CB_CSW_Cloud 的引用不起作用。我为它做了同样的步骤:
- 在OMNET++->Makemake->Options->Target中标记了“创建共享库”
- 在主项目的Properties->Project References中勾选了项目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 库。我通过以下步骤将其添加到项目中:
- 设置 Project->Properties->OMNET++->Makemake->Options->Link->Additional Libraries to link with (-l option):sqlite3
- 设置Project->Properties->C/C++General->Paths And Symbols->Library Paths:C:/sqlite
由于我没有收到一些确切的信息,为什么 libCB_CSW_Cloud 没有加载,我不知道是什么导致了问题。我以完全相同的方式使用它,就像其他项目 CB_CSW_Vehicle 一样有效。这导致我提出建议,即 sqlite3 库会导致问题。可能吗?一个项目 CSW 是否可以引用另一个项目 CB_CSW_Cloud,它本身使用库 sqlite3?或者我也应该将此库添加到 CSW 中?
你能帮我运行 CSW 项目吗?
更新:我解决了我的问题,将 sqlite3 库添加到运行配置并将 CB_CSW_Cloud 和 CB_CSW_Vehicle 项目的源代码复制到CSW 项目。在 OMNET++ 中真的很难有很多项目。
【问题讨论】:
标签: c++ eclipse sqlite omnet++