strange linking errors with static-libs...

Clemens Eisserer Linuxhippy@web.de
Thu Oct 31 14:50:00 GMT 2002


Hi GCJ-Folks!

I've a(for me) very strange questions referable static linking with gcj.
I've made a static-library with gcj myself and linking with this library works as long fine, as I only want to compile only one file.
E.G. this works quite fine:
gcj lib.a main.java --main=main -o test

But if I want to compile more than one java-file, I get tons of "undefined symbol"-errors:
gcj lib.a main.java another.java  --main=main -o test

But this works fine, if the library is not a ".a"-file but a shared library ".so":
gcj lib.so main.java another.java  --main=main -o test

I dont understand, why I should be only able to use static libraries with only one file. Isnt it possible, wo compile more than one file and the compilier links only needed symbols from the ".a" file into the executable?

I'm sorry, that I make traffic with such stupid newbie-questions on your  List. I've really treid everything, but I'm really no ld or gcc specialist ;-)

And, please be so patient to an ugly gcj-newbie like me, and answer me my last question:
Is JNI supported by GCJ with the Gygwin or the MinGW-version?

Mfg Linuxhippy

Here's the output gcj produces with a static library and more than one java-file:

/tmp/ccWZgfLD.o: In function `ComplexGridLayoutExample$4':
/tmp/ccWZgfLD.o(.text+0x83): undefined reference to `org::eclipse::swt::events::SelectionAdapter::SelectionAdapter[in-charge]()'
/tmp/ccWZgfLD.o: In function `ComplexGridLayoutExample$3':
/tmp/ccWZgfLD.o(.text+0x4c3): undefined reference to `org::eclipse::swt::events::SelectionAdapter::SelectionAdapter[in-charge]()'
/tmp/ccWZgfLD.o: In function `ComplexGridLayoutExample$3::widgetSelected(org::eclipse::swt::events::SelectionEvent*)':
/tmp/ccWZgfLD.o(.text+0x4fc): undefined reference to `org::eclipse::swt::graphics::Image::dispose()'
/tmp/ccWZgfLD.o: In function `ComplexGridLayoutExample$2':
/tmp/ccWZgfLD.o(.text+0x545): undefined reference to `org::eclipse::swt::events::SelectionAdapter::SelectionAdapter[in-charge]()'
/tmp/ccWZgfLD.o: In function `ComplexGridLayoutExample$2::widgetSelected(org::eclipse::swt::events::SelectionEvent*)':
/tmp/ccWZgfLD.o(.text+0x56b): undefined reference to `org::eclipse::swt::widgets::FileDialog::class$'
/tmp/ccWZgfLD.o(.text+0x57b): undefined reference to `org::eclipse::swt::widgets::FileDialog::FileDialog[in-charge](org::eclipse::swt::widgets::Shell*)'
/tmp/ccWZgfLD.o(.text+0x5a6): undefined reference to `org::eclipse::swt::graphics::Image::class$'
/tmp/ccWZgfLD.o(.text+0x5c7): undefined reference to `org::eclipse::swt::graphics::Image::Image[in-charge](org::eclipse::swt::graphics::Device*, java::lang::String*)'
/tmp/ccWZgfLD.o: In function `ComplexGridLayoutExample$1::paintControl(org::eclipse::swt::events::PaintEvent*)':
/tmp/ccWZgfLD.o(.text+0x631): undefined reference to `org::eclipse::swt::graphics::GC::drawImage(org::eclipse::swt::graphics::Image*, int, int)'
/tmp/ccWZgfLD.o: In function `ComplexGridLayoutExample::createwindow()':
/tmp/ccWZgfLD.o(.text+0x652): undefined reference to `org::eclipse::swt::widgets::Display::class$'
/tmp/ccWZgfLD.o(.text+0x665): undefined reference to `org::eclipse::swt::widgets::Display::Display[in-charge]()'
/tmp/ccWZgfLD.o(.text+0x67d): undefined reference to `org::eclipse::swt::widgets::Shell::class$'
/tmp/ccWZgfLD.o(.text+0x697): undefined reference to `org::eclipse::swt::widgets::Shell::Shell[in-charge](org::eclipse::swt::widgets::Display*)'
/tmp/ccWZgfLD.o(.text+0x6c8): undefined reference to `org::eclipse::swt::layout::GridLayout::class$'
/tmp/ccWZgfLD.o(.text+0x6db): undefined reference to `org::eclipse::swt::layout::GridLayout::GridLayout[in-charge]()'
/tmp/ccWZgfLD.o(.text+0x722): undefined reference to `org::eclipse::swt::widgets::Label::class$'
/tmp/ccWZgfLD.o(.text+0x732): undefined reference to `org::eclipse::swt::widgets::Label::Label[in-charge](org::eclipse::swt::widgets::Composite*, int)'
/tmp/ccWZgfLD.o(.text+0x75a): undefined reference to `org::eclipse::swt::widgets::Text::class$'
/tmp/ccWZgfLD.o(.text+0x779): undefined reference to `org::eclipse::swt::widgets::Text::Text[in-charge](org::eclipse::swt::widgets::Composite*, int)'
/tmp/ccWZgfLD.o(.text+0x78b): undefined reference to `org::eclipse::swt::layout::GridData::class$'
/tmp/ccWZgfLD.o(.text+0x7a3): undefined reference to `org::eclipse::swt::layout::GridData::GridData[in-charge](int)'
/tmp/ccWZgfLD.o(.text+0x7ea): undefined reference to `org::eclipse::swt::widgets::Label::class$'
/tmp/ccWZgfLD.o(.text+0x7fa): undefined reference to `org::eclipse::swt::widgets::Label::Label[in-charge](org::eclipse::swt::widgets::Composite*, int)'
/tmp/ccWZgfLD.o(.text+0x822): undefined reference to `org::eclipse::swt::widgets::Combo::class$'
/tmp/ccWZgfLD.o(.text+0x83e): undefined reference to `org::eclipse::swt::widgets::Combo::Combo[in-charge](org::eclipse::swt::widgets::Composite*, int)'
/tmp/ccWZgfLD.o(.text+0x8c5): undefined reference to `org::eclipse::swt::layout::GridData::class$'
/tmp/ccWZgfLD.o(.text+0x8dd): undefined reference to `org::eclipse::swt::layout::GridData::GridData[in-charge](int)'
/tmp/ccWZgfLD.o(.text+0x900): undefined reference to `org::eclipse::swt::widgets::Label::class$'
/tmp/ccWZgfLD.o(.text+0x91c): undefined reference to `org::eclipse::swt::widgets::Label::Label[in-charge](org::eclipse::swt::widgets::Composite*, int)'
/tmp/ccWZgfLD.o(.text+0x94d): undefined reference to `org::eclipse::swt::layout::GridData::class$'
/tmp/ccWZgfLD.o(.text+0x962): undefined reference to `org::eclipse::swt::layout::GridData::GridData[in-charge](int)'
/tmp/ccWZgfLD.o(.text+0x993): undefined reference to `org::eclipse::swt::widgets::Label::class$'
/tmp/ccWZgfLD.o(.text+0x9a3): undefined reference to `org::eclipse::swt::widgets::Label::Label[in-charge](org::eclipse::swt::widgets::Composite*, int)'
/tmp/ccWZgfLD.o(.text+0x9cb): undefined reference to `org::eclipse::swt::widgets::Canvas::class$'
/tmp/ccWZgfLD.o(.text+0x9ea): undefined reference to `org::eclipse::swt::widgets::Canvas::Canvas[in-charge](org::eclipse::swt::widgets::Composite*, int)'
/tmp/ccWZgfLD.o(.text+0x9fc): undefined reference to `org::eclipse::swt::layout::GridData::class$'
/tmp/ccWZgfLD.o(.text+0xa14): undefined reference to `org::eclipse::swt::layout::GridData::GridData[in-charge](int)'
/tmp/ccWZgfLD.o(.text+0xaa4): undefined reference to `org::eclipse::swt::widgets::List::class$'
/tmp/ccWZgfLD.o(.text+0xac3): undefined reference to `org::eclipse::swt::widgets::List::List[in-charge](org::eclipse::swt::widgets::Composite*, int)'
/tmp/ccWZgfLD.o(.text+0xb8d): undefined reference to `org::eclipse::swt::layout::GridData::class$'
/tmp/ccWZgfLD.o(.text+0xba5): undefined reference to `org::eclipse::swt::layout::GridData::GridData[in-charge](int)'
/tmp/ccWZgfLD.o(.text+0xc43): undefined reference to `org::eclipse::swt::widgets::Button::class$'
/tmp/ccWZgfLD.o(.text+0xc5f): undefined reference to `org::eclipse::swt::widgets::Button::Button[in-charge](org::eclipse::swt::widgets::Composite*, int)'
/tmp/ccWZgfLD.o(.text+0xc93): undefined reference to `org::eclipse::swt::layout::GridData::class$'
/tmp/ccWZgfLD.o(.text+0xcab): undefined reference to `org::eclipse::swt::layout::GridData::GridData[in-charge](int)'
/tmp/ccWZgfLD.o(.text+0xd24): undefined reference to `org::eclipse::swt::widgets::Button::class$'
/tmp/ccWZgfLD.o(.text+0xd40): undefined reference to `org::eclipse::swt::widgets::Button::Button[in-charge](org::eclipse::swt::widgets::Composite*, int)'
/tmp/ccWZgfLD.o(.text+0xd74): undefined reference to `org::eclipse::swt::layout::GridData::class$'
/tmp/ccWZgfLD.o(.text+0xd8c): undefined reference to `org::eclipse::swt::layout::GridData::GridData[in-charge](int)'
/tmp/ccWZgfLD.o(.text+0xe05): undefined reference to `org::eclipse::swt::widgets::Group::class$'
/tmp/ccWZgfLD.o(.text+0xe21): undefined reference to `org::eclipse::swt::widgets::Group::Group[in-charge](org::eclipse::swt::widgets::Composite*, int)'
/tmp/ccWZgfLD.o(.text+0xe55): undefined reference to `org::eclipse::swt::layout::GridLayout::class$'
/tmp/ccWZgfLD.o(.text+0xe68): undefined reference to `org::eclipse::swt::layout::GridLayout::GridLayout[in-charge]()'
/tmp/ccWZgfLD.o(.text+0xea1): undefined reference to `org::eclipse::swt::layout::GridData::class$'
/tmp/ccWZgfLD.o(.text+0xeb9): undefined reference to `org::eclipse::swt::layout::GridData::GridData[in-charge](int)'
/tmp/ccWZgfLD.o(.text+0xf00): undefined reference to `org::eclipse::swt::widgets::Label::class$'
/tmp/ccWZgfLD.o(.text+0xf10): undefined reference to `org::eclipse::swt::widgets::Label::Label[in-charge](org::eclipse::swt::widgets::Composite*, int)'
/tmp/ccWZgfLD.o(.text+0xf38): undefined reference to `org::eclipse::swt::widgets::Text::class$'
/tmp/ccWZgfLD.o(.text+0xf57): undefined reference to `org::eclipse::swt::widgets::Text::Text[in-charge](org::eclipse::swt::widgets::Composite*, int)'
/tmp/ccWZgfLD.o(.text+0xf6f): undefined reference to `org::eclipse::swt::layout::GridData::class$'
/tmp/ccWZgfLD.o(.text+0xf87): undefined reference to `org::eclipse::swt::layout::GridData::GridData[in-charge](int)'
/tmp/ccWZgfLD.o(.text+0xfb8): undefined reference to `org::eclipse::swt::widgets::Label::class$'
/tmp/ccWZgfLD.o(.text+0xfc8): undefined reference to `org::eclipse::swt::widgets::Label::Label[in-charge](org::eclipse::swt::widgets::Composite*, int)'
/tmp/ccWZgfLD.o(.text+0xff0): undefined reference to `org::eclipse::swt::widgets::Text::class$'
/tmp/ccWZgfLD.o(.text+0x100f): undefined reference to `org::eclipse::swt::widgets::Text::Text[in-charge](org::eclipse::swt::widgets::Composite*, int)'
/tmp/ccWZgfLD.o(.text+0x1027): undefined reference to `org::eclipse::swt::layout::GridData::class$'
/tmp/ccWZgfLD.o(.text+0x103f): undefined reference to `org::eclipse::swt::layout::GridData::GridData[in-charge](int)'
/tmp/ccWZgfLD.o(.text+0x1062): undefined reference to `org::eclipse::swt::widgets::Button::class$'
/tmp/ccWZgfLD.o(.text+0x107e): undefined reference to `org::eclipse::swt::widgets::Button::Button[in-charge](org::eclipse::swt::widgets::Composite*, int)'
/tmp/ccWZgfLD.o(.text+0x10b2): undefined reference to `org::eclipse::swt::layout::GridData::class$'
/tmp/ccWZgfLD.o(.text+0x10ca): undefined reference to `org::eclipse::swt::layout::GridData::GridData[in-charge](int)'
/tmp/ccWZgfLD.o(.text+0x11f0): undefined reference to `org::eclipse::swt::graphics::Image::dispose()'
/tmp/ccWZgfLD.o(.data+0x168): undefined reference to `org::eclipse::swt::events::SelectionAdapter::widgetDefaultSelected(org::eclipse::swt::events::SelectionEvent*)'
/tmp/ccWZgfLD.o(.data+0x1b0): undefined reference to `org::eclipse::swt::events::SelectionAdapter::class$'
/tmp/ccWZgfLD.o(.data+0x288): undefined reference to `org::eclipse::swt::events::SelectionAdapter::widgetDefaultSelected(org::eclipse::swt::events::SelectionEvent*)'
/tmp/ccWZgfLD.o(.data+0x2b0): undefined reference to `org::eclipse::swt::events::SelectionAdapter::class$'
/tmp/ccWZgfLD.o(.data+0x388): undefined reference to `org::eclipse::swt::events::SelectionAdapter::widgetDefaultSelected(org::eclipse::swt::events::SelectionEvent*)'
/tmp/ccWZgfLD.o(.data+0x3b0): undefined reference to `org::eclipse::swt::events::SelectionAdapter::class$'
/tmp/ccWZgfLD.o(.data+0x484): undefined reference to `org::eclipse::swt::events::PaintListener::class$'
/tmp/ccWZgfLD.o(.data+0x524): undefined reference to `org::eclipse::swt::widgets::Display::class$'
/tmp/ccWZgfLD.o(.data+0x534): undefined reference to `org::eclipse::swt::widgets::Shell::class$'
/tmp/ccWZgfLD.o(.data+0x544): undefined reference to `org::eclipse::swt::widgets::Text::class$'
/tmp/ccWZgfLD.o(.data+0x554): undefined reference to `org::eclipse::swt::widgets::Combo::class$'
/tmp/ccWZgfLD.o(.data+0x564): undefined reference to `org::eclipse::swt::widgets::Canvas::class$'
/tmp/ccWZgfLD.o(.data+0x574): undefined reference to `org::eclipse::swt::graphics::Image::class$'
/tmp/ccWZgfLD.o(.data+0x584): undefined reference to `org::eclipse::swt::widgets::List::class$'
/tmp/ccWZgfLD.o(.data+0x594): undefined reference to `org::eclipse::swt::widgets::Text::class$'
/tmp/ccWZgfLD.o(.data+0x5a4): undefined reference to `org::eclipse::swt::widgets::Text::class$'
collect2: ld returned 1 exit status


________________________________________________________________
Keine verlorenen Lotto-Quittungen, keine vergessenen Gewinne mehr! 
Beim WEB.DE Lottoservice: http://tippen2.web.de/?x=13




More information about the Java mailing list