0

I'm working on a veins project at the moment and everything went fine till today. I had the need to add a new module to the ' veins/src/veins/modules ' directory so I simply created a new folder and put some .ned files and relative header/source files in there. I got some errors after doing that but nothing special (I was probably doing something wrong and compiler didn't like it). I then decided to delete the folder and try again maybe the day after.

After doing so I re-run the same exact simulation and omnet/IDE started showing this, not being able to launch:

<!> Error: Cannot load library '../../src//libveins.so': ../../src//libveins.so: undefined symbol: _ZN8Flooding6finishEv

End.

Simulation terminated with exit code: 1

I've tryed a fresh clean and rebuilt the whole veins project but that didn't help. I googled this error but couldn't find anything similiar to my case. Thanks in advance for your help.

Best regards.

Barnercart
  • 1,523
  • 1
  • 11
  • 23
  • 1
    Try to delete libveins.so by hand and rebuild project. – Jerzy D. May 22 '18 at 08:28
  • When you Clean Local -> Clean Project -> Rebuild it automatically deletes the libveins.so file so I doubt that's the matter but I'll try. – Barnercart May 22 '18 at 10:13
  • Do you still have some code that is pointing to the symbols you created? I don't think the `_ZN8Flooding6finishEv` symbol is part of VEINS. If all else fails, try cloning a fresh copy of VEINS and compiling that -- if that works, `git bisect` on the commit history of your project to find the commit that introduced the error. – Rens van der Heijden May 22 '18 at 11:37
  • 2
    `c++filt _ZN8Flooding6finishEv` shows that the missing symbol is `Flooding::finish()`. It seems that you have a deceleration of this method but missing a corresponding implementation. I'd assume your module was called `Flooding` and you did not delete all of it when starting over. – Julian Heinovski May 22 '18 at 12:22
  • Oh I found out by myself what the problem was but It's exactly as you said. I just couldn't figure out what that undefined symbol ment. Running the same configuration on Windows showed that it was indeed `Flooding::finish()` not implemented (that's probably because it's automatically demangled on Windows). It's just weird that's been told by the opp_run and not the compiler. Anyways, all good now. Thanks for your help. – Barnercart May 22 '18 at 15:04
  • You are very welcome to add an answer to your (own) question. This will allow other users who ignite have a similar problem in the future to easily find the question (and the answer) – Christoph Sommer May 22 '18 at 19:22

1 Answers1

2

c++filt _ZN8Flooding6finishEv shows that the missing symbol is Flooding::finish(). It seems that you have a deceleration of this method but missing a corresponding implementation. I'd assume your module was called Flooding and you did not delete all of it when starting over.

Julian Heinovski

Running the same configuration on Windows showed that it was indeed Flooding::finish() not implemented (that's probably because it's automatically demangled on Windows). I just deleted the declaration and solved my little inattention.

Barnercart
  • 1,523
  • 1
  • 11
  • 23