<!---->启动时出错:使用sqlite3

时间:2015-09-21 12:58:45

标签: c++ eclipse sqlite omnet++

我有一个OMNET ++项目 CSW ,它通过项目 - >属性 - >项目参考来引用其他OMNET ++项目。

对项目 CB_CSW_Vehicle 的引用工作正常。我将此项目项目 - &gt;属性 - &gt; OMNET ++ - &gt; Makemake-&gt;选项 - &gt;目标标记为共享库。所以我有一个 libCB_CSW_Vehicle.dll ,主项目 CSW 使用它。来自 CSW 的模拟运行,使用 CB_CSW_Vehicle 没有问题。

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

  1. OMNET ++ - &gt; Makemake-&gt;选项 - &gt;目标
  2. 中标记“创建共享库”
  3. 在主项目的属性 - &gt;项目参考中检查项目 CB_CSW_Cloud
  4. 我可以构建我的主项目 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. 设置项目 - &gt;属性 - &gt; OMNET ++ - &gt; Makemake-&gt;选项 - &gt;链接 - &gt;要链接的附加库(-l选项) sqlite3
    2. 设置项目 - &gt;属性 - &gt; C / C ++常规 - &gt;路径和符号 - &gt;库路径 C:/ sqlite
    3. 由于我没有收到一些确切的信息,为什么没有加载 libCB_CSW_Cloud ,我不知道导致问题的原因。我以完全相同的方式使用它,就像其他项目 CB_CSW_Vehicle 一样有效。这引出了我的建议, sqlite3 库会导致问题。可能吗?项目 CSW 是否可以引用其他项目 CB_CSW_Cloud ,它本身使用库 sqlite3 ?或者我还要将此库添加到 CSW 吗?

      你能帮助我运行 CSW 项目吗?

      更新:我解决了将sqlite3库添加到运行配置并将 CB_CSW_Cloud CB_CSW_Vehicle 项目的源代码复制到 CSW 项目。 OMNET ++中很难有很多项目。

1 个答案:

答案 0 :(得分:1)

您必须在sqlite3项目的运行配置中添加CSW库的链接。转到Run | Run Configurations... | Main标签| More>>以及Dynamic libraries写入sqlite3库的路径。请注意,路径必须相对于工作目录,并且没有dll后缀,没有lib前缀。
如果dll文件sqlite3 }不包含lib前缀,请尝试重命名(例如从sqlite3.dll转换为libsqlite3.dll)。