This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

compiling with gcj


hi,

i have a class called SendMailMessage and another class called TextTools. static functions in TextTools are called in SendMailMessage. it looks to me like the linking is failing these calls.

i have been researching this for hours. i found your article related to what i am experiencing. i think this is the same problem. unfortunately, i can't figure out how to compile jar files into native code that i can use with gcj. i bet it is something simple and yet it eludes me.

the error i am getting is

i type: gcj --main=SendMailMessage d:\inetpub\classes\com\planbtechnologies\SendMailMessage.java

i get:

C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccqKaaaa.o: In function `ZN15SendMailMessage4mainEP6JArrayIPN4java4lang6StringEE':

d:/inetpub/classes/com/planbtechnologies/SendMailMessage.java:32: undefined reference to `com::planbtechnologies::TextTools
::parseOnString(java::lang::String*, java::lang::String*, java::lang::String*, bool)'



any help would be appreciated. email me directly as well as responding to the list.


many thanks.

adam

if this helps, there was a thread on this a while ago and i could not make sense of it:

From: Mark Anderson <mark at panonet dot net>
To: java at gcc dot gnu dot org
Date: Mon, 21 Oct 2002 14:10:33 +0100
Subject: Linking question

--------------------------------------------------------------------------------

I have just started using gcj and I am trying to compile some code into native
form. This code relies on other code found in JAR files which I have
specified using -I.
An example of the command I am using is given below along with its output:

gcj --main=LinkTest -Iutil_jar.jar -o LinkTest LinkTest.java
/tmp/ccigNOif.o: In function `LinkTest::main(JArray<java::lang::String*>*)':
/tmp/ccigNOif.o(.text+0x44): undefined reference to
`com::ravnaandtines::util::text::Hexprint::fmt(int)'
collect2: ld returned 1 exit status

I understand that the error is being caused because the com....Hexprint class
is not availble in a library as native code. However, I thought that with gcj
you could mix native and bytecodes.

Therefore, my question is do I need to compile the JAR file to native code or
is there any way I can create my binary without doing this?

--
Regards,
Mark

and the response was:

On Mon, 2002-10-21 at 06:10, Mark Anderson wrote:
> Therefore, my question is do I need to compile the JAR file to native code or
> is there any way I can create my binary without doing this?


You either need to compile the JAR file to native code, or restructure
your program so no references to Hexprint appear in your program.  This
means you're pretty much limited to whatever you can manage with
Class.forName().  There are a few approaches you can try... reflection,
abstraction, proxies...

Perhaps one day we'll be able to make what you're asking for work.

AG

Adam Satcowitz
Plan B Technologies, Inc.
212.242.5654


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]