From: Grzegorz J. <ja...@he...> - 2003-12-16 02:22:28
|
Hi, More info solicited: * occ version * gcc version * does static build work ok? * output of 'nm VerboseClass2.so' * output of 'ldd VerboseClass2.so' (read on) On Sun, 14 Dec 2003, [iso-8859-2] Miko=B3aj Dawidowski wrote: > Hi! > I compiled OpenCxx under cygwin (latest). I got the occ.exe with and with= out > GC (DONT_GC uncommented). I tried to compile examples, i stared with > VerboseClass and VerboseClass2. I set the LD_LIBRARY_PATH to the current, > ofcourse. VerboseClass-init.so is made but there are errors when tried to > make VerboseClass.so. > I get the following: > > $ occ -m -v -I../src -I../gc/include -I../gc -- -I../src -I../gc/include > -I../gc VerboseClass2.mc > [Preprocess... g++ -I../src -I../gc/include -I../gc -D__opencxx -E -o > VerboseCl > ass2.occ -x c++ VerboseClass2.mc] > [Translate... VerboseClass2.occ into: VerboseClass2.ii] > MOP warning: The hash table is full. Expanded... > Produce VerboseClass2-init.cc .. > [Compile... g++ -fPIC -shared -o VerboseClass2-init.so > VerboseClass2-init.cc] > cc1plus: warning: -fPIC ignored for target (all code is position > independent) > [Compile... g++ -I../src -I../gc/include -I../gc -fPIC -shared -o > VerboseClass2 > .so VerboseClass2.ii] This looks strange to me. Perhaps '-c' is missing from this commandline (that would mean a bug in OpenC++). You can try to add '-c' by hand to this command line and run it by hand. I am now working on a wrapper script that uses occ just for translation and implements remaining functionality (compilation and linking) via libtool. That should solve this problem. The prototype can be checked out from sandbox_jakacki_frontend1 branch. Pozdrowienia Grzegorz > cc1plus: warning: -fPIC ignored for target (all code is position > independent) > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.text+0x10e):VerboseCla= ss2 > .mc: > undefined reference to `Opencxx::Class::RegisterMetaclass(char*, char*)' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.text+0x113):VerboseCla= ss2 > .mc: > undefined reference to `Opencxx::Class::Initialize()' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.text+0x160):VerboseCla= ss2 > .mc: > undefined reference to > `Opencxx::Class::TranslateMemberCall(Opencxx::Environmen > t*, Opencxx::Ptree*, Opencxx::Ptree*, Opencxx::Ptree*, Opencxx::Ptree*)' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.text+0x177):VerboseCla= ss2 > .mc: > undefined reference to `Opencxx::Ptree::Make(char const*, ...)' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.text+0x1fb):VerboseCla= ss2 > .mc: > undefined reference to > `Opencxx::opcxx_ListOfMetaclass::opcxx_ListOfMetaclass[i > n-charge](char*, Opencxx::Class* (*)(Opencxx::Ptree*, Opencxx::Ptree*), b= ool > (*) > (), Opencxx::Ptree* (*)())' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.text+0x2ae):VerboseCla= ss2 > .mc: > undefined reference to > `Opencxx::opcxx_ListOfMetaclass::opcxx_ListOfMetaclass[i > n-charge](char*, Opencxx::Class* (*)(Opencxx::Ptree*, Opencxx::Ptree*), b= ool > (*) > (), Opencxx::Ptree* (*)())' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.rdata$_ZTV13VerboseCla= ss2 > +0x8 > ):VerboseClass2.mc: undefined reference to > `Opencxx::Class::InitializeInstance(O > pencxx::Ptree*, Opencxx::Ptree*)' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.rdata$_ZTV13VerboseCla= ss2 > +0x1 > 8):VerboseClass2.mc: undefined reference to > `Opencxx::Class::TranslateClass(Open > cxx::Environment*)' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.rdata$_ZTV13VerboseCla= ss2 > +0x1 > c):VerboseClass2.mc: undefined reference to > `Opencxx::Class::TranslateMemberFunc > tion(Opencxx::Environment*, Opencxx::Member&)' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.rdata$_ZTV13VerboseCla= ss2 > +0x2 > 0):VerboseClass2.mc: undefined reference to > `Opencxx::Class::TranslateInitialize > r(Opencxx::Environment*, Opencxx::Ptree*, Opencxx::Ptree*)' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.rdata$_ZTV13VerboseCla= ss2 > +0x2 > 4):VerboseClass2.mc: undefined reference to > `Opencxx::Class::TranslateNew(Opencx > x::Environment*, Opencxx::Ptree*, Opencxx::Ptree*, Opencxx::Ptree*, > Opencxx::Ptr > ee*, Opencxx::Ptree*)' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.rdata$_ZTV13VerboseCla= ss2 > +0x2 > 8):VerboseClass2.mc: undefined reference to > `Opencxx::Class::TranslateDelete(Ope > ncxx::Environment*, Opencxx::Ptree*, Opencxx::Ptree*)' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.rdata$_ZTV13VerboseCla= ss2 > +0x2 > c):VerboseClass2.mc: undefined reference to > `Opencxx::Class::TranslateAssign(Ope > ncxx::Environment*, Opencxx::Ptree*, Opencxx::Ptree*, Opencxx::Ptree*)' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.rdata$_ZTV13VerboseCla= ss2 > +0x3 > 0):VerboseClass2.mc: undefined reference to > `Opencxx::Class::TranslateBinary(Ope > ncxx::Environment*, Opencxx::Ptree*, Opencxx::Ptree*, Opencxx::Ptree*)' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.rdata$_ZTV13VerboseCla= ss2 > +0x3 > 4):VerboseClass2.mc: undefined reference to > `Opencxx::Class::TranslateUnary(Open > cxx::Environment*, Opencxx::Ptree*, Opencxx::Ptree*)' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.rdata$_ZTV13VerboseCla= ss2 > +0x3 > 8):VerboseClass2.mc: undefined reference to > `Opencxx::Class::TranslateSubscript( > Opencxx::Environment*, Opencxx::Ptree*, Opencxx::Ptree*)' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.rdata$_ZTV13VerboseCla= ss2 > +0x3 > c):VerboseClass2.mc: undefined reference to > `Opencxx::Class::TranslatePostfix(Op > encxx::Environment*, Opencxx::Ptree*, Opencxx::Ptree*)' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.rdata$_ZTV13VerboseCla= ss2 > +0x4 > 0):VerboseClass2.mc: undefined reference to > `Opencxx::Class::TranslateFunctionCa > ll(Opencxx::Environment*, Opencxx::Ptree*, Opencxx::Ptree*)' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.rdata$_ZTV13VerboseCla= ss2 > +0x4 > 8):VerboseClass2.mc: undefined reference to > `Opencxx::Class::TranslateMemberCall > (Opencxx::Environment*, Opencxx::Ptree*, Opencxx::Ptree*)' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.rdata$_ZTV13VerboseCla= ss2 > +0x4 > c):VerboseClass2.mc: undefined reference to > `Opencxx::Class::TranslateMemberRead > (Opencxx::Environment*, Opencxx::Ptree*, Opencxx::Ptree*, Opencxx::Ptree*= )' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.rdata$_ZTV13VerboseCla= ss2 > +0x5 > 0):VerboseClass2.mc: undefined reference to > `Opencxx::Class::TranslateMemberRead > (Opencxx::Environment*, Opencxx::Ptree*)' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.rdata$_ZTV13VerboseCla= ss2 > +0x5 > 4):VerboseClass2.mc: undefined reference to > `Opencxx::Class::TranslateMemberWrit > e(Opencxx::Environment*, Opencxx::Ptree*, Opencxx::Ptree*, Opencxx::Ptree= *, > Open > cxx::Ptree*, Opencxx::Ptree*)' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.rdata$_ZTV13VerboseCla= ss2 > +0x5 > 8):VerboseClass2.mc: undefined reference to > `Opencxx::Class::TranslateMemberWrit > e(Opencxx::Environment*, Opencxx::Ptree*, Opencxx::Ptree*, Opencxx::Ptree= *)' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.rdata$_ZTV13VerboseCla= ss2 > +0x5 > c):VerboseClass2.mc: undefined reference to > `Opencxx::Class::TranslateUnaryOnMem > ber(Opencxx::Environment*, Opencxx::Ptree*, Opencxx::Ptree*, > Opencxx::Ptree*, Op > encxx::Ptree*)' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.rdata$_ZTV13VerboseCla= ss2 > +0x6 > 0):VerboseClass2.mc: undefined reference to > `Opencxx::Class::TranslateUnaryOnMem > ber(Opencxx::Environment*, Opencxx::Ptree*, Opencxx::Ptree*)' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.rdata$_ZTV13VerboseCla= ss2 > +0x6 > 4):VerboseClass2.mc: undefined reference to > `Opencxx::Class::TranslatePostfixOnM > ember(Opencxx::Environment*, Opencxx::Ptree*, Opencxx::Ptree*, > Opencxx::Ptree*, > Opencxx::Ptree*)' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.rdata$_ZTV13VerboseCla= ss2 > +0x6 > 8):VerboseClass2.mc: undefined reference to > `Opencxx::Class::TranslatePostfixOnM > ember(Opencxx::Environment*, Opencxx::Ptree*, Opencxx::Ptree*)' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.rdata$_ZTV13VerboseCla= ss2 > +0x6 > c):VerboseClass2.mc: undefined reference to > `Opencxx::Class::TranslatePointer(Op > encxx::Environment*, Opencxx::Ptree*)' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.rdata$_ZTV13VerboseCla= ss2 > +0x7 > 0):VerboseClass2.mc: undefined reference to > `Opencxx::Class::TranslateUserStatem > ent(Opencxx::Environment*, Opencxx::Ptree*, Opencxx::Ptree*, > Opencxx::Ptree*, Op > encxx::Ptree*)' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.rdata$_ZTV13VerboseCla= ss2 > +0x7 > 4):VerboseClass2.mc: undefined reference to > `Opencxx::Class::TranslateStaticUser > Statement(Opencxx::Environment*, Opencxx::Ptree*, Opencxx::Ptree*)' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.rdata$_ZTV13VerboseCla= ss2 > +0x7 > 8):VerboseClass2.mc: undefined reference to > `Opencxx::Class::AcceptTemplate()' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.rdata$_ZTV13VerboseCla= ss2 > +0x7 > c):VerboseClass2.mc: undefined reference to > `Opencxx::Class::FinalizeInstance()' > > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.rdata$_ZTV13VerboseCla= ss2 > +0x8 > 0):VerboseClass2.mc: undefined reference to `Opencxx::Class::Finalize()' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.text$_ZN13VerboseClass= 2D1 > Ev+0 > x16):VerboseClass2.mc: undefined reference to `Opencxx::Class::~Class > [not-in-ch > arge]()' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.text$_ZN13VerboseClass= 2D0 > Ev+0 > x16):VerboseClass2.mc: undefined reference to `Opencxx::Class::~Class > [not-in-ch > arge]()' > /cygdrive/c/DOCUME~1/mik/USTAWI~1/Temp/cc5XkxtC.o(.text$_ZN7Opencxx5Class= C2E > v+0x > 16):VerboseClass2.mc: undefined reference to `vtable for Opencxx::Class' > collect2: ld returned 1 exit status > > > Any hints ?? > I would appreciate it. > > Thanks in advance > Nick Davidovsky > ################################################################## # Grzegorz Jakacki Huada Electronic Design # # Senior Engineer, CAD Dept. 1 Gaojiayuan, Chaoyang # # tel. +86-10-64365577 x2074 Beijing 100015, China # # Copyright (C) 2003 Grzegorz Jakacki, HED. All Rights Reserved. # ################################################################## |