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:
- marked "create shared library" in OMNET++->Makemake->Options->Target
- 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:
- set Project->Properties->OMNET++->Makemake->Options->Link->Additional Libraries to link with (-l option): sqlite3
- 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.
You have to add link to the
sqlite3
library in run configuration ofCSW
project. Go toRun
|Run Configurations...
|Main
tab |More>>
and inDynamic libraries
write path tosqlite3
library. Please note that the path has to be relative to the working directory, and without adll
suffix, without alib
prefix.If the
dll
file ofsqlite3
doesn't containlib
prefix, try to rename it (for example fromsqlite3.dll
intolibsqlite3.dll
).