Undefined references for SWT

Marco Trudel mtrudel@gmx.ch
Sun Feb 11 17:52:00 GMT 2007


Please don't top-post... It's hard to follow the discussion.
Harpal Grover wrote:
> Hye man that is cool. Thanks for your help though. I will try what you
> suggested.

If you feel uncertain about how to use GCJ manually, you might be 
interested in my builds at http://jnc.mtsystems.ch. The come with a GUI 
and a lot of other helpful stuff. However, it is no longer gratis as 
Mohans build from thisiscool.com which you're using.
> BTW, what is the recommended amount of ram I should have
> installed before I try to compile swt? I tried an hour ago to compile
> swt again, and after an hour I had to kill it.

Your 1/2g should be ok. Just ensure to have enough swap. I think Windows 
can decline swap requests during the enlargement of the file. But I'm 
not sure about that...
Marco
>> On 2/11/07, Marco Trudel <mtrudel@gmx.ch> wrote:
>> Harpal Grover wrote:
>> > Okay, I stated in my first post I am using GCJ for MingW GCC/GCJ 4.3
>> > (gcj-eclipse-merge-branch) on Windows XP, AMD 2.1 GHZ 512 MB
>> >
>> > What I did not state I guess is I am using gcjbuilder, an eclipse
>> > plugin to automate the build process :p It creates a make file for
>> > you. So I have included the make file:
>> >
>> >
>> > # Generated by Eclipse GCJ Builder
>> > # http://gcjbuilder.sf.net
>> >
>> > #global targets
>> > ALL: main
>> > all: main
>> >
>> > #gcj variable
>> > GCJ=gcj $(OPTLEVEL) $(DEBUGLEVEL) $(COMPILER_OPTIONS)
>> >
>> > #binary output folder
>> > BINOUT= release
>> >
>> > #compiler options
>> > COMPILER_OPTIONS=
>> >
>> > #linker options
>> > LINKER_OPTIONS=
>> >
>> > #object list
>> > OBJ=App.o
>> >
>> > #custom objects
>> > CUSTOM_OBJ=
>> >
>> > #jar objects
>> > CPOBJ=$(BINOUT)/./gface_0.9.1.jar.o $(BINOUT)/./swt.jar.o
>> >
>> > #jar so
>> > CPSO=
>> >
>> > #project classpath
>> > 
>> CP="--classpath=C:/projects/java/TSCN/Desktop/lib/h2.jar;C:/projects/java/TSCN/Desktop/lib/nebula_grid_ALPHA.jar;C:/projects/java/TSCN/Desktop/lib/ktable_2.1.3.jar;gface_0.9.1.jar;C:/thisiscool-gcc/swt/win32/3218/swt.jar;./;" 
>>>> >
>> >
>> > #main class (or so output)
>> > MAINCLASS=--main=App -fjni
>> >
>> > #binary name (exe or so)
>> > BIN=$(BINOUT)/scnlm.exe
>> >
>> > #library path list
>> > LIBRARYPATH=-L$(BINOUT)
>> >
>> > #libraries (so) list
>> > LIBRARIES=
>> >
>> > #resource objects list
>> > RESOB=
>> >
>> > #compiler optimization level
>> > OPTLEVEL= -O1
>> >
>> > #compiler debug level
>> > DEBUGLEVEL= -g0
>> >
>> >
>> > #object targets
>> > %.o: %.java
>> > $(GCJ) $(CP) -c $? -o $@
>> >
>> > ##################
>> > #dummy targets (depend on config)
>> >
>> > #classpath objects target
>> > $(BINOUT)/./gface_0.9.1.jar.o :gface_0.9.1.jar
>> > $(GCJ) -c $(CP) gface_0.9.1.jar -o$(BINOUT)/gface_0.9.1.jar.o
>> > $(BINOUT)/./swt.jar.o :C:/thisiscool-gcc/swt/win32/3218/swt.jar
>> > $(GCJ) -c $(CP) C:/thisiscool-gcc/swt/win32/3218/swt.jar
>> > -o$(BINOUT)/swt.jar.o
>> >
>> >
>> > #classpath so target
>> >
>> >
>> > #resource objects target
>> >
>> >
>> >
>> > #################
>> >
>> >
>> > #main target
>> >
>> > main: setup $(CPOBJ) $(RESOB) $(OBJ) $(CPSO)
>> > $(GCJ) $(LINKER_OPTIONS) $(MAINCLASS) $(CPOBJ) $(CUSTOM_OBJ) 
>> $(RESOB)
>> > $(OBJ) -o$(BIN) $(LIBRARYPATH) $(LIBRARIES) $(CPSO)
>> >
>> > #setup output folders
>> > setup:
>> > mkdir -p $(BINOUT)/resource
>> >
>> > #clean target
>> > clean:
>> > rm -f `find . -name "*.o"`
>> > rm -r $(BINOUT)
>> >
>> > So, the way this is executed is by the following line in MSYS :
>> >
>> > $ make
>> > mkdir -p release/resource
>>>> Ok...
>>>> > gcj -O1 -g0 -c
>> > 
>> --classpath=C:/projects/java/TSCN/Desktop/lib/h2.jar;C:/projects/java/TSCN/Desktop/lib/nebula_grid_ALPHA.jar;C:/projects/java/TSCN/Desktop/lib/ktable_2.1.3.jar;gface_0.9.1.jar;C:/thisiscool-gcc/swt/win32/3218/swt.jar;./;" 
>>>> > C:/thisiscool-gcc/swt/win32/3218/swt.jar -orelease/swt.jar.o
>> > --main=App -fjni release/./gface_0.9.1.jar.o release/./swt.jar.o
>> > App.o -orelease/scnlm.exe -Lrelease
>>>> This is one command? I assume these are multiple commands but don't see
>> them clearly... Did you set them up yourself manually or does the
>> eclipse gcj builder help?
>> Can you try to compile your app manually? And report what errors happen
>> where? Something like:
>>>> gcj -c -fjni swt.jar -o swt.jar.o
>> gcj -s --main=App App.java swt.jar.o -Iswt.jar -o scnlm.exe
>>>> I really can't help you with these informations... Maybe someone else 
>> can...
>>>>>> Marco
>>>> >
>> > Is this more helpful? :)
>> >
>> >
>> > On 2/11/07, Marco Trudel <mtrudel@gmx.ch> wrote:
>> >> Harpal Grover wrote:
>> >> > I think I figured out what may be the swt,
>> >>
>> >> I don't understand that....
>> >>
>> >>
>> >> > I guess it's because the
>> >> > the swt.jar wasn't the first jar being compiled in the command, 
>> so the
>> >> > other jar's that relied on the swt library were failing.
>> >>
>> >> I don't understand tha
>> >
>> >> >> I only see -fjni here for the main compilation.
>> >> >>
>> >> >>
>> >> >> > #binary name (exe or so)
>> >> >> > BIN=$(BINOUT)/scnlm.exe
>> >> >> >
>> >> >> > #library path list
>> >> >> > LIBRARYPATH=-L$(BINOUT)
>> >> >> >
>> >> >> > #libraries (so) list
>> >> >> > LIBRARIES=
>> >> >> >
>> >> >> > #resource objects list
>> >> >> > RESOB=
>> >> >> >
>> >> >> > #compiler optimization level
>> >> >> > OPTLEVEL= -O3
>> >> >> >
>> >> >> > #compiler debug level
>> >> >> > DEBUGLEVEL= -g0
>> >> >> >
>> >> >> >
>> >> >> > #object targets
>> >> >> > %.o: %.java
>> >> >> > $(GCJ) $(CP) -c $? -o $@
>> >> >>
>> >> >> Here -fjni is missing if this compiles swt to an object. But I 
>> was too
>> >> >> lazy to take a close look at this huge (in comparison to some 
>> little
>> >> >> short manual commands which would have been a good alternative)
>> >> >> makefile. So I might be wrong...
>> >> >>
>> >> >>
>> >> >> Marco
>> >> >>
>> >> >> > ##################
>> >> >> > #dummy targets (depend on config)
>> >> >> >
>> >> >> > #classpath objects target
>> >> >> > $(BINOUT)/./nebula_grid_ALPHA.jar.o
>> >> >> > :C:/projects/java/TSCN/Desktop/lib/nebula_grid_ALPHA.jar
>> >> >> > $(GCJ) -c $(CP)
>> >> >> > C:/projects/java/TSCN/Desktop/lib/nebula_grid_ALPHA.jar
>> >> >> > -o$(BINOUT)/nebula_grid_ALPHA.jar.o
>> >> >> > $(BINOUT)/./gface_0.9.1.jar.o :gface_0.9.1.jar
>> >> >> > $(GCJ) -c $(CP) gface_0.9.1.jar -o$(BINOUT)/gface_0.9.1.jar.o
>> >> >> > $(BINOUT)/./swt.jar.o :C:/thisiscool-gcc/swt/win32/3218/swt.jar
>> >> >> > $(GCJ) -c $(CP) C:/thisiscool-gcc/swt/win32/3218/swt.jar
>> >> >> > -o$(BINOUT)/swt.jar.o
>> >> >> >
>> >> >> >
>> >> >> > #classpath so target
>> >> >> >
>> >> >> >
>> >> >> > #resource objects target
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> > #################
>> >> >> >
>> >> >> >
>> >> >> > #main target
>> >> >> >
>> >> >> > main: setup $(CPOBJ) $(RESOB) $(OBJ) $(CPSO)
>> >> >> > $(GCJ) $(LINKER_OPTIONS) $(MAINCLASS) $(CPOBJ) $(CUSTOM_OBJ)
>> >> >> $(RESOB)
>> >> >> > $(OBJ) -o$(BIN) $(LIBRARYPATH) $(LIBRARIES) $(CPSO)
>> >> >> >
>> >> >> > #setup output folders
>> >> >> > setup:
>> >> >> > mkdir -p $(BINOUT)/resource
>> >> >> >
>> >> >> > #clean target
>> >> >> > clean:
>> >> >> > rm -f `find . -name "*.o"`
>> >> >> > rm -r $(BINOUT)
>> >> >> >
>> >> >> > On 2/11/07, Andrew Haley <aph@redhat.com> wrote:
>> >> >> >> Harpal Grover writes:
>> >> >> >> > Hi,
>> >> >> >> >
>> >> >> >> > I am using GCJ for MingW GCC/GCJ 4.3
>> >> (gcj-eclipse-merge-branch).
>> >> >> >> >
>> >> >> >> > I am getting the following errors when I attempt to 
>> compile not
>> >> >> only
>> >> >> >> > my java code, but referenced jars as well:
>> >> >> >> >
>> >> >> >> >
>> >> >> >> >
>> >> >> >> >
>> >> >> 
>> org/vafada/swtcalendar/SWTCalendar.o:SWTCalendar.java:(.data+0xc28):
>> >> >> >> > undefined reference to
>> >> >> >> > `org::eclipse::swt::widgets::Control::isActive()'
>> >> >> >> >
>> >> >> >> >
>> >> >> 
>> org/vafada/swtcalendar/SWTCalendar.o:SWTCalendar.java:(.data+0xc2c):
>> >> >> >> > undefined reference to
>> >> >> >> > `org::eclipse::swt::widgets::Control::isEnabled()'
>> >> >> >> >
>> >> >> >> >
>> >> >> 
>> org/vafada/swtcalendar/SWTCalendar.o:SWTCalendar.java:(.data+0xc30):
>> >> >> >> > undefined reference to
>> >> >> >> > `org::eclipse::swt::widgets::Control::isFocusControl()'
>> >> >> >> >
>> >> >> >> >
>> >> >> 
>> org/vafada/swtcalendar/SWTCalendar.o:SWTCalendar.java:(.data+0xc34):
>> >> >> >> > undefined reference to
>> >> >> >> >
>> >> >> >>
>> >> >>
>> >> 
>> `org::eclipse::swt::widgets::Control::isFocusAncestor(org::eclipse::swt::widgets::Control*)' 
>>>> >>
>> >> >>
>> >> >> >>
>> >> >> >> >
>> >> >> >> >
>> >> >> 
>> org/vafada/swtcalendar/SWTCalendar.o:SWTCalendar.java:(.data+0xc38):
>> >> >> >> > undefined reference to
>> >> >> >> > `org::eclipse::swt::widgets::Control::isReparentable()'
>> >> >> >> >
>> >> >> >> >
>> >> >> 
>> org/vafada/swtcalendar/SWTCalendar.o:SWTCalendar.java:(.data+0xc3c):
>> >> >> >> > undefined reference to
>> >> >> >> > `org::eclipse::swt::widgets::Control::isShowing()'
>> >> >> >> > I have included the swt.jar that MingW provides in the
>> >> classpath. I
>> >> >> >> > have also used the -fjni flag. I must be missing something 
>> here.
>> >> >> Can
>> >> >> >> > anyone give me any pointers?
>> >> >> >>
>> >> >> >> You haven't give us enough information. In which jar is
>> >> >> >> org.eclipse.swt.windgets.Control? Did you compile it? What
>> >> compile
>> >> >> >> args did you use?
>> >> >> >>
>> >> >> >> Andrew.
>> >> >> >>
>> >> >> >
>> >> >> >
>> >> >>
>> >> >>
>> >> >
>> >> >
>> >>
>> >>
>> >
>> >
>>>>>>


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /