[GRASS-dev] v.info

Helena Mitasova hmitaso at unity.ncsu.edu
Fri Mar 16 22:12:56 EDT 2007


That has fixed it, thanks a lot.  Helena

On Mar 16, 2007, at 4:15 PM, Glynn Clements wrote:

>
> Helena Mitasova wrote:
>
>> I might have missed something, but I am running v.info in about 3  
>> days
>> old CVS GRASS
>> and it asks for output map? However, the example in the man page is
>> v.info map=test
>>
>> Why do we need output map for v.info?
>>
>> Thanks, Helena
>>
>> GRASS 6.3.cvs > v.info -g soils_general
>>
>> ERROR: Required parameter <output> not set:
>> (Name for output vector map).
>>
>> Usage:
>> v.info [-hcgt] input=name output=name [--overwrite] [--verbose]
>> [--quiet]
>
> If you update the source code from CVS, you have to run "make clean"
> before re-compiling; otherwise, you get problems like this.
>
> The specific problem is:
>
>   fieldopt = G_define_standard_option(G_OPT_V_FIELD);
>
> The enum constants in gis.h changed between 1.39 (which is what your
> v.info uses) and 1.42 (which is what your libgis uses):
>
> 	value revision 1.42   revision 1.39
> 	 0    G_OPT_WHERE     G_OPT_WHERE
> 	 1    G_OPT_COLUMN    G_OPT_I_GROUP
> 	 2    G_OPT_COLUMNS   G_OPT_R_INPUT
> 	 3    G_OPT_I_GROUP   G_OPT_R_INPUTS
> 	 4    G_OPT_R_INPUT   G_OPT_R_OUTPUT
> 	 5    G_OPT_R_INPUTS  G_OPT_R_MAP
> 	 6    G_OPT_R_OUTPUT  G_OPT_R_MAPS
> 	 7    G_OPT_R_MAP     G_OPT_R_BASE
> 	 8    G_OPT_R_MAPS    G_OPT_R_COVER
> 	 9    G_OPT_R_BASE    G_OPT_R_ELEV
> 	10    G_OPT_R_COVER   G_OPT_R_ELEVS
> 	11    G_OPT_R_ELEV    G_OPT_R3_INPUT
> 	12    G_OPT_R_ELEVS   G_OPT_R3_INPUTS
> 	13    G_OPT_R3_INPUT  G_OPT_R3_OUTPUT
> 	14    G_OPT_R3_INPUTS G_OPT_V_INPUT
> 	15    G_OPT_R3_OUTPUT G_OPT_V_OUTPUT
> 	16    G_OPT_V_INPUT   G_OPT_V_MAP
> 	17    G_OPT_V_INPUTS  G_OPT_V_TYPE
> =>	18    G_OPT_V_OUTPUT  G_OPT_V_FIELD
> 	19    G_OPT_V_MAP     G_OPT_V_CAT
> 	20    G_OPT_V_TYPE    G_OPT_V_CATS
> 	21    G_OPT_V_FIELD
> 	22    G_OPT_V_CAT
> 	23    G_OPT_V_CATS
>
> v.info was compiled when G_OPT_V_FIELD == 18, so that's what gets
> passed to libgis, which sees it as G_OPT_V_OUTPUT.
>
> Although we could adopt a policy of not "renumbering" the G_OPT_*
> constants, I would rather that people who forget "make clean" get
> obvious errors that can be quickly identified than by obscure errors
> that cause us to waste hours or even days trying to identify.
>
> I'd even suggest changing G_gisinit() to e.g.:
>
> gisdefs.h:
>
> 	#define G_gisinit(pgm) G__gisinit(GRASS_CVS_VERSION, (pgm))
>
> lib/gis/gisinit.c:
>
> 	int G__gisinit(const char *version, const char *pgm)
> 	{
> 	    if (strcmp(version, GRASS_CVS_VERSION) != 0)
> 		G_fatal_error("GRASS version mismatch);
>
> 	...
>
> The only problem here is that we would have to update the value of
> GRASS_CVS_VERSION regularly (e.g. daily) for this to be of much use.
>
> -- 
> Glynn Clements <glynn at gclements.plus.com>




More information about the grass-dev mailing list