Hi,
after knowing that mixim 2.3 was released, I wanted to perform some tests, regarding the phy layer.
My new system is a
- Xubuntu 12.10
- g++ (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2
- Omnet 4.2.2 (patched applied for getting the make working)
- mixim 2.3
right after installing mixim 2.3 I wanted to create a normal project with an analogue model but while building I get an error. It is the following:
In file included from ../MiXiM/src/base/phyLayer/BasePhyLayer.h:9:0,
from ../MiXiM/src/modules/phy/PhyLayer.h:12,
from FOOPhy.h:19,
from FOOPhy.cc:16:
../MiXiM/src/base/connectionManager/ConnectionManagerAccess.h:40:26: fatal error: BaseMobility.h: No such file or directory
compilation terminated.
make: *** [out/gcc-debug//HOLAPhy.o] Error 1
My ConnectionManagerAccess.h: at line 40 looks like
#ifndef MIXIM_INET
#include "FindModule.h"
#include "BaseMobility.h"
typedef AccessModuleWrap<BaseMobility> ChannelMobilityAccessType;
typedef ChannelMobilityAccessType::wrapType* ChannelMobilityPtrType;
#endif
However, I am not able to find the file BaseMobility.h and therefore unable to solve the problem.
If I tweak mixim 2.3 with the missing files from mixim2.2.1 I solve the problem but then I get the new following error while compiling my FOO project:
g++ -Wl,--export-dynamic -Wl,-rpath,/home/user/omnetpp-4.2.2/lib -Wl,-rpath,. -o out/gcc-debug//FOO out/gcc-debug//FOOPhy.o out/gcc-debug//FOO.o -Wl,--no-as-needed -Wl,--whole-archive -L../MiXiM/out/gcc-debug/src -lmixim -Wl,-rpath,`abspath ../MiXiM/out/gcc-debug/src` -Wl,--no-whole-archive -L"/home/user/omnetpp-4.2.2/lib/gcc" -L"/home/user/omnetpp-4.2.2/lib" -loppmaind -u _tkenv_lib -Wl,--no-as-needed -lopptkenvd -loppenvird -lopplayoutd -u _cmdenv_lib -Wl,--no-as-needed -loppcmdenvd -loppenvird -loppsimd -ldl -lstdc++
out/gcc-debug//FOOPhy.o:(.rodata._ZTV7FOOPhy[_ZTV7FOOPhy]+0x22c): undefined reference to `non-virtual thunk to BasePhyLayer::getChannelInfo(SimTime const&, SimTime const&, std::list<MiximAirFrame*, std::allocator<MiximAirFrame*> >&) const'
out/gcc-debug//FOOPhy.o:(.rodata._ZTV7FOOPhy[_ZTV7FOOPhy]+0x230): undefined reference to `non-virtual thunk to BasePhyLayer::getThermalNoise(SimTime const&, SimTime const&)'
out/gcc-debug//FOOPhy.o:(.rodata._ZTV7FOOPhy[_ZTV7FOOPhy]+0x234): undefined reference to `non-virtual thunk to BasePhyLayer::sendControlMsgToMac(cMessage*)'
out/gcc-debug//FOOPhy.o:(.rodata._ZTV7FOOPhy[_ZTV7FOOPhy]+0x238): undefined reference to `non-virtual thunk to BasePhyLayer::sendUp(MiximAirFrame*, DeciderResult*)'
out/gcc-debug//FOOPhy.o:(.rodata._ZTV7FOOPhy[_ZTV7FOOPhy]+0x23c): undefined reference to `non-virtual thunk to BasePhyLayer::getSimTime() const'
out/gcc-debug//FOOPhy.o:(.rodata._ZTV7FOOPhy[_ZTV7FOOPhy]+0x240): undefined reference to `non-virtual thunk to BasePhyLayer::cancelScheduledMessage(cMessage*)'
out/gcc-debug//FOOPhy.o:(.rodata._ZTV7FOOPhy[_ZTV7FOOPhy]+0x244): undefined reference to `non-virtual thunk to BasePhyLayer::rescheduleMessage(cMessage*, SimTime const&)'
out/gcc-debug//FOOPhy.o:(.rodata._ZTV7FOOPhy[_ZTV7FOOPhy]+0x248): undefined reference to `non-virtual thunk to BasePhyLayer::drawCurrent(double, int)'
out/gcc-debug//FOOPhy.o:(.rodata._ZTV7FOOPhy[_ZTV7FOOPhy]+0x24c): undefined reference to `non-virtual thunk to BasePhyLayer::recordScalar(char const*, double, char const*)'
out/gcc-debug//FOOPhy.o:(.rodata._ZTV7FOOPhy[_ZTV7FOOPhy]+0x250): undefined reference to `non-virtual thunk to BasePhyLayer::getCurrentRadioChannel() const'
out/gcc-debug//FOOPhy.o:(.rodata._ZTV7FOOPhy[_ZTV7FOOPhy]+0x254): undefined reference to `non-virtual thunk to BasePhyLayer::getNbRadioChannels() const'
out/gcc-debug//FOOPhy.o:(.rodata._ZTV7FOOPhy[_ZTV7FOOPhy]+0x258): undefined reference to `non-virtual thunk to BasePhyLayer::isRadioInRX() const'
out/gcc-debug//FOOPhy.o:(.rodata._ZTV7FOOPhy[_ZTV7FOOPhy]+0x25c): undefined reference to `non-virtual thunk to BasePhyLayer::getPhyHeaderLength() const'
out/gcc-debug//FOOPhy.o:(.rodata._ZTV7FOOPhy[_ZTV7FOOPhy]+0x270): undefined reference to `non-virtual thunk to BasePhyLayer::getRadioState() const'
out/gcc-debug//FOOPhy.o:(.rodata._ZTV7FOOPhy[_ZTV7FOOPhy]+0x274): undefined reference to `non-virtual thunk to BasePhyLayer::setRadioState(int)'
out/gcc-debug//FOOPhy.o:(.rodata._ZTV7FOOPhy[_ZTV7FOOPhy]+0x278): undefined reference to `non-virtual thunk to BasePhyLayer::getChannelState() const'
out/gcc-debug//FOOPhy.o:(.rodata._ZTV7FOOPhy[_ZTV7FOOPhy]+0x280): undefined reference to `non-virtual thunk to BasePhyLayer::setCurrentRadioChannel(int)'
collect2: error: ld returned 1 exit status
make: *** [out/gcc-debug//FOO] Error 1
Is it a bug in the new mixim 2.3 or am I doing something wrong?
PD: I am aware of MIXIME_INET symbol for filtering the includes between the INET and MIXIM frameworks. I want to use mixim, not inet, therefore I though I did not have to install INET.
Regards