This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
Re: -D ?
- From: Tom Tromey <tromey at redhat dot com>
- To: akos dot szalay at sophos dot com
- Cc: java at gcc dot gnu dot org
- Date: 23 Apr 2002 15:42:48 -0600
- Subject: Re: -D ?
- References: <OFDFA4D542.A6716CEC-ON80256BA4.004D5D18@uk.sophos>
- Reply-to: tromey at redhat dot com
>>>>> "Akos" == akos szalay <akos.szalay@sophos.com> writes:
Akos> What does the -D switch do ?
>From the manual:
@item -D@var{name}[=@var{value}]
This option can only be used with @code{--main}. It defines a system
property named @var{name} with value @var{value}. If @var{value} is not
specified then it defaults to the empty string. These system properties
are initialized at the program's startup and can be retrieved at runtime
using the @code{java.lang.System.getProperty} method.
The manual ought to be online somewhere, but to be honest I've never
checked.
Akos> In the help it says "-D<macro> Define a <macro> with string '1'
Akos> as its value", which is what I need, but when using it, I get an
Akos> error "can't specify '-D' without '--main'.
Yes. You're reading the definition for C/C++, which is different.
Java doesn't have macros, so that definition of -D makes no sense for gcj.
Akos> I try to compile together java and c code by using JNI (which
Akos> works just fine in the version from 17/12/2001 - in 3.0.4 it
Akos> seems to be broken). So what does the -D switch do, and what
Akos> should I use instead to define a macro ?
If you're compiling C code you should invoke `gcc'. If you're
compiling C++ you should invoke `g++'. Both of these will accept -D
in the way you expect. gcj should only be used for compiling Java
code (either .java, .class, or resource files with --resource).
Akos> BTW, any estimation on the release of 3.1 ?
Soon, as soon as the critical bugs are fixed. A prerelease came out
today.
Tom