c++ - <!> 启动时出错 : Cannot load library in OMNET++ project while using sqlite3

标签 c++ eclipse sqlite omnet++

我有一个 OMNET++ 项目,CSW,它通过Project->Properties->Project References 引用其他 OMNET++ 项目。

对项目 CB_CSW_Vehicle 的引用工作正常。我为这个项目标记了 Project->Properties->OMNET++->Makemake->Options->Targetshared library。所以我有一个 libCB_CSW_Vehicle.dll,主要项目 CSW 使用它。来自 CSW 的模拟运行,使用 CB_CSW_Vehicle 没有问题。

对其他项目 CB_CSW_Cloud 的引用不起作用。我为它做了同样的步骤:

  1. OMNET++->Makemake->Options->Target中标记"create shared library"
  2. 在主项目的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 库。我通过以下步骤将它添加到项目中:

  1. 设置Project->Properties->OMNET++->Makemake->Options->Link->Additional Libraries to link with (-l option): sqlite3<
  2. 设置项目->属性->C/C++通用->路径和符号->库路径:C:/sqlite

由于我没有收到一些确切的信息,为什么 libCB_CSW_Cloud 没有加载,我不知道是什么原因导致了这个问题。我以与其他项目 CB_CSW_Vehicle 完全相同的方式使用它。这让我想到了 sqlite3 库导致问题的建议。是否可以?一个项目 CSW 能否引用另一个项目 CB_CSW_Cloud,它本身使用一个库 sqlite3?或者我是否也应该将此库添加到 CSW

你能帮我运行CSW项目吗?

更新:我通过将 sqlite3 库添加到运行配置并将 CB_CSW_CloudCB_CSW_Vehicle 项目的源代码复制到CSW 项目。在 OMNET++ 中有很多项目真的很困难。

最佳答案

您必须添加指向 sqlite3 的链接CSW运行 配置中的库项目。转到 Run | Run Configurations... | Main选项卡 | More>>Dynamic libraries将路径写入 sqlite3图书馆。请注意,路径必须是相对于工作目录的,并且没有 dll后缀,没有 lib前缀。
如果dll sqlite3 的文件不包含 lib前缀,尝试重命名它(例如从 sqlite3.dlllibsqlite3.dll )。

关于c++ - &lt;!&gt; 启动时出错 : Cannot load library in OMNET++ project while using sqlite3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32695871/

相关文章:

c++ - 文件格式中的整数类型

c++ - 密码的隐形输入?

eclipse - 从测试类运行单个集成测试

eclipse - tomcat 的 URL 问题包括项目名称

sqlite - 执行 SQLite 脚本

c++ - 许多嵌套回调的优点/缺点?

java - 使用 Eclipse 资源过滤器

php - 尝试在 Amazon EC2 上升级 sqlite

sqlite - 使用sqlite、flutter app导入数据库

c++ - 使用 g++ 和 Makefiles 从编译代码中打印编译器警告