<!> Error during startup: Cannot load library in OMNET++ project while using sqlite3

我怕爱的太早我们不能终老 提交于 2019-12-11 10:55:13

问题


I have an OMNET++ project, CSW, that references other OMNET++ projects via Project->Properties->Project References.

The reference to the project CB_CSW_Vehicle works fine. I marked for this project Project->Properties->OMNET++->Makemake->Options->Target as shared library. So I have a libCB_CSW_Vehicle.dll, which is used by the main project CSW. Simulations from CSW run, using CB_CSW_Vehicle without problems.

The reference to the other project CB_CSW_Cloud, doesn't work. I made the same steps for it:

  1. marked "create shared library" in OMNET++->Makemake->Options->Target
  2. checked the project CB_CSW_Cloud in Properties->Project References of the main project

I can build my main project CSW. I can also build libCB_CSW_Cloud.dll. When I run a simulation from project CSW, I receive an error:

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

The only difference between these two projects, is that CB_CSW_Cloud uses sqlite3 library. I added it to the project with following steps:

  1. set Project->Properties->OMNET++->Makemake->Options->Link->Additional Libraries to link with (-l option): sqlite3
  2. set Project->Properties->C/C++General->Paths And Symbols->Library Paths: C:/sqlite

Since I don't receive some exact information, why libCB_CSW_Cloud was not loaded, I don't know what causes the problem. I use it in exactly the same way, as other project CB_CSW_Vehicle, that works. This leads me to the suggestion, that the sqlite3 library causes the problem. Is it possible? Can a project CSW have a reference to the other project CB_CSW_Cloud, that itself uses a library sqlite3? Or shall I also add this library to CSW?

Can you help me to run the CSW project?

Update: I solved my problem with adding sqlite3 library to the run configuration and copying the source code of the CB_CSW_Cloud and CB_CSW_Vehicle projects to the CSW project. It is really difficult in OMNET++ to have a lot of projects.


回答1:


You have to add link to the sqlite3 library in run configuration of CSW project. Go to Run | Run Configurations... | Main tab | More>> and in Dynamic libraries write path to sqlite3 library. Please note that the path has to be relative to the working directory, and without a dll suffix, without a lib prefix.
If the dll file of sqlite3 doesn't contain lib prefix, try to rename it (for example from sqlite3.dll into libsqlite3.dll).



来源:https://stackoverflow.com/questions/32695871/error-during-startup-cannot-load-library-in-omnet-project-while-using-sql

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!