Search code examples
clangomnet++veinsinet

How to build veins inet project in omnet


when I m trying to build an omnetpp project including Inet-4.2.2 Simu5G-1.1.0 and veins-5.1 this error occurs while building :

Creating shared library: ../out/clang-release/src/libveins_inet.dll
../out/clang-release/src/veins_inet/VeinsInetManager.o:(.rdata+0x7f8): undefined reference to `virtual thunk to veins::TraCIScenarioManagerLaunchd::finish()'
../out/clang-release/src/veins_inet/VeinsInetManager.o:(.rdata+0xc80): undefined reference to `virtual thunk to veins::TraCIScenarioManagerLaunchd::init_traci()'
../out/clang-release/src/veins_inet/VeinsInetManager.o:(.rdata+0x12e8): undefined reference to `virtual thunk to veins::TraCIScenarioManagerLaunchd::~TraCIScenarioManagerLaunchd()'
../out/clang-release/src/veins_inet/VeinsInetManager.o:(.rdata+0x12f0): undefined reference to `virtual thunk to veins::TraCIScenarioManagerLaunchd::~TraCIScenarioManagerLaunchd()'
../out/clang-release/src/veins_inet/VeinsInetManager.o:(.rdata+0x13d8): undefined reference to `virtual thunk to veins::TraCIScenarioManagerLaunchd::initialize(int)'
../out/clang-release/src/veins_inet/VeinsInetManager.o:(.rdata+0x13f0): undefined reference to `virtual thunk to veins::TraCIScenarioManagerLaunchd::finish()'
../out/clang-release/src/veins_inet/VeinsInetManager.o:(.rdata+0x1878): undefined reference to `virtual thunk to veins::TraCIScenarioManagerLaunchd::init_traci()'
../out/clang-release/src/veins_inet/VeinsInetManager.o:(.text[_ZN5veins22SignalCallbackListenerIPN7omnetpp7cObjectEEC2ESt8functionIFvNS_13SignalPayloadIS3_EEEEPNS1_7cModuleEi]+0x25): undefined reference to `__imp__ZTVN5veins22SignalCallbackListenerIPN7omnetpp7cObjectEEE'
clang++.exe: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [Makefile:136: ../out/clang-release/src/libveins_inet.dll] Error 1
make[1]: Leaving directory '/c/Users/hadil/OneDrive/Desktop/5G/veins_inet/src'
make: *** [Makefile:36: all] Error 2
"make MODE=release all" terminated with exit code 2. Build might be incomplete.

Simu5G 1.1.0 works perfectly with Inet 4.2.2 but when I import veins and veins inet the problem occurs.


Solution

  • I believe Simu5G was not tested to be used as a library on Windows (i.e. it cannot be used by other project). Simu5G itself can be compiled and used fine on Windows though.

    You won't be able to build it easily on Windows. I suggest installing everything in a WSL machine and run everything from there. On Linux you will have much less issues. I also suggest to try to use opp_env