Error while compiling

Asked by Andrew Karpenkov

I'm use Ubuntu 10.04. After the command ./playground.py install I got an error:

Install file: "modules/phy/imtaphy/src/lsParams/RngMock.hpp" as ".include/IMTAPHY/lsParams/RngMock.hpp"
Install file: "modules/phy/imtaphy/src/spatialChannel/m2135/FixPar.hpp" as ".include/IMTAPHY/spatialChannel/m2135/FixPar.hpp"
g++ -o .build/dbg/imtaphy/src/StationPhy.os -c -g -O0 -fno-inline -fopenmp -fPIC -I.include -I/usr/include/python2.6 modules/phy/imtaphy/src/StationPhy.cpp
In file included from .include/WNS/node/component/Interface.hpp:32,
                 from .include/WNS/node/component/Component.hpp:33,
                 from .include/IMTAPHY/StationPhy.hpp:33,
                 from modules/phy/imtaphy/src/StationPhy.cpp:30:
.include/WNS/node/component/ConfigCreator.hpp: In member function 'KIND* wns::node::component::ConfigCreator<T, KIND>::create(wns::node::Interface*, const wns::pyconfig::View&) [with T = imtaphy::StationPhy, KIND = wns::node::component::Interface]':
modules/phy/imtaphy/src/StationPhy.cpp:200: instantiated from here
.include/WNS/node/component/ConfigCreator.hpp:53: error: cannot allocate an object of abstract type 'imtaphy::StationPhy'
.include/IMTAPHY/StationPhy.hpp:63: note: because the following virtual functions are pure within 'imtaphy::StationPhy':
.include/WNS/service/phy/imta/DataTransmission.hpp:46: note: virtual void wns::service::phy::imta::DataTransmission::registerTransmission(wns::node::Interface*, wns::service::phy::phymode::PhyModeInterfacePtr, wns::Power, wns::osi::PDUPtr, wns::service::phy::imta::PRBList, unsigned int)
scons: *** [.build/dbg/imtaphy/src/StationPhy.os] Error 1
scons: building terminated because of errors.

What goes wrong? How to solve this problem?

Question information

Language:
English Edit question
Status:
Solved
For:
IMTAphy Edit question
Assignee:
No assignee Edit question
Solved by:
Andrew Karpenkov
Solved:
Last query:
Last reply:
Revision history for this message
Jan (jan-ellenbeck) said :
#1

Hmm, this seems to be an inconsistency between IMTAphy and it's interface to upper layers (e.g. a layer 2) which is defined in the openWNS library itself.

The idea there is that the interfaces between layers (and different projects or modules withion openWNS) is declared in the openwns-library as a service. That way direct dependencies between different projects/modules/layers can be avoided. The interface as it is currently defined there in openWNS/service/phy/imta is very preliminary and about to change while we develop an LTE-Advanced layer to sit on top of IMTAphy.

I guess the launchpad.net/imtaphy version was already modified to fit an updated interface which we have not yet pushed into openwns-library because it is still an intermediate version. I'll try to reproduce the error now and get back to you.

Revision history for this message
Jan (jan-ellenbeck) said :
#2

OK, it seems to be as described above. We had changed the interface in openwns-library internally and accidentally pushed an adapted version of imtaphy that is not compatible with the interface of the openwns-library available on launchpad.net/openwns-library.

I suggest you comment the phyModePtr line in framework/library/src/service/phy/imta/DataTransmission.hpp as indicated below. It is not yet used anyway and it will change in the future. But for the time being it compiles like that.

Cheers
Jan

PS: I really suggest you get the MKL library because all optimization (and more testing) has been done for that variant of the code. It should be free for non-commercial use and there are also trial versions available.

=== modified file 'src/service/phy/imta/DataTransmission.hpp'
--- src/service/phy/imta/DataTransmission.hpp 2011-04-04 10:42:29 +0000
+++ src/service/phy/imta/DataTransmission.hpp 2011-05-03 19:57:42 +0000
@@ -46,7 +46,7 @@
                     virtual void registerTransmission(wns::node::Interface* destination,
                                                       // later:
                                                       // - precoding (vector/matrix),
- wns::service::phy::phymode::PhyModeInterfacePtr phyModePtr,
+// wns::service::phy::phymode::PhyModeInterfacePtr phyModePtr,
                                                       wns::Power txPower,
                                                       wns::osi::PDUPtr transportBlock,
                                                       PRBList transmitPRBs,

Revision history for this message
Andrew Karpenkov (plddesigner) said :
#3

Ок. Thanks a lot!

Revision history for this message
Maciej Muehleisen (mue-comnets) said :
#4

Actually I accidentally introduced and uploaded this code change. I've fixed it now. Sorry for the inconvenience.