I created a CS-app based on csApplicationFramework.
Everything worked fine some time ago but now I get linker errors when I try to compile my applicaton.
This is my main-class:
class Server : public csApplicationFramework {
private:
iObjectRegistry* objectRegistry;
csRef<iEngine> engine;
csRef<iLoader> loader;
csRef<iVirtualClock> virtualClock;
csRef<iReporter> reporter;
csRef<iStandardReporterListener> reporterListener;
csRef<iCelPlLayer> physiclayer;
csRef<iCelBlLayer> behavelayer;
static Network net;
public:
Server();
virtual bool OnInitialize(int argc, char* argv[]);
virtual bool Application();
};
I want to initialize my networking code within Application() between Open() and Run(), but I get the following error:
g++ -o out/bin/Server src/server/Server.o src/server/network/Network.o -Lout/lib/crystalspace -Lout/lib/cel -lcstool -lcsgeom -lcsutil -lceltool -lptypes
src/server/Server.o(.text+0xb02): In function `Server::Application()':
: undefined reference to `Server::net'
/usr/lib/gcc/i686-pc-linux-gnu/3.4.3/../../../../i686-pc-linux-gnu/bin/ld: `.L15' referenced in section `.rodata' of out/lib/libcsutil.a(plugmgr.o): defined in discarded section `.gnu.linkonce.t._ZN16csReporterHelper6ReportEP15iObjectRegistryiPKcS3_z' of out/lib/libcsutil.a(plugmgr.o)
/usr/lib/gcc/i686-pc-linux-gnu/3.4.3/../../../../i686-pc-linux-gnu/bin/ld: `.L16' referenced in section `.rodata' of out/lib/libcsutil.a(plugmgr.o): defined in discarded section `.gnu.linkonce.t._ZN16csReporterHelper6ReportEP15iObjectRegistryiPKcS3_z' of out/lib/libcsutil.a(plugmgr.o)
/usr/lib/gcc/i686-pc-linux-gnu/3.4.3/../../../../i686-pc-linux-gnu/bin/ld: `.L18' referenced in section `.rodata' of out/lib/libcsutil.a(plugmgr.o): defined in discarded section `.gnu.linkonce.t._ZN16csReporterHelper6ReportEP15iObjectRegistryiPKcS3_z' of out/lib/libcsutil.a(plugmgr.o)
/usr/lib/gcc/i686-pc-linux-gnu/3.4.3/../../../../i686-pc-linux-gnu/bin/ld: `.L20' referenced in section `.rodata' of out/lib/libcsutil.a(plugmgr.o): defined in discarded section `.gnu.linkonce.t._ZN16csReporterHelper6ReportEP15iObjectRegistryiPKcS3_z' of out/lib/libcsutil.a(plugmgr.o)
/usr/lib/gcc/i686-pc-linux-gnu/3.4.3/../../../../i686-pc-linux-gnu/bin/ld: `.L21' referenced in section `.rodata' of out/lib/libcsutil.a(plugmgr.o): defined in discarded section `.gnu.linkonce.t._ZN16csReporterHelper6ReportEP15iObjectRegistryiPKcS3_z' of out/lib/libcsutil.a(plugmgr.o)
collect2: ld returned 1 exit status
but why? This is crazy, I tried it with and without pointers, I had rewritten 80% of my code to get rid of this error.
Why is it impossible to create a class or use a method in my csApplicationFramework?
I tried OnInitialize() too but then I get the same error.
I *must* be able to create some classes but where?
I hope I don't need to write every class I want to use as a plugin or with SCF...