[GRASS-user] Re: Installing r.area

LeeDaniel Lee.Daniel.1986 at gmail.com
Mon Aug 2 07:26:09 EDT 2010


Alright, sorry, was gone over the weekend. Now I'm back. Here some additional
information.

Concerning installing the add-on r.area with g.extension:

(you mean the installation via g.extension isn't functional on your machine)
Right, my mistake.

After using g.extension to get r.area I get the following error:
GRASS 6.4.0RC6 (DornbirnTest):~ > g.extension r.area
Fetching <r.area> from GRASS-Addons SVN (be patient)...
A    r.area/main.c
A    r.area/description.html
A    r.area/Makefile
Checked out revision 42954.
Compiling <r.area>...
test -d OBJ.i686-pc-linux-gnu || mkdir -p OBJ.i686-pc-linux-gnu
gcc -I/usr/src/packages/BUILD/grass-6.4.0RC6/dist.i686-pc-linux-gnu/include 
-O2       -DPACKAGE=\""grassmods"\" 
-I/usr/src/packages/BUILD/grass-6.4.0RC6/dist.i686-pc-linux-gnu/include -o
OBJ.i686-pc-linux-gnu/main.o -c main.c
main.c:19:23: fatal error: grass/gis.h: No such file or directory
compilation terminated.
make: *** [OBJ.i686-pc-linux-gnu/main.o] Error 1
ERROR: Compilation failed, sorry. Please check above error messages.


You see that grass/gis.h is missing which should be there in your
> binary installation in include/.
> Ah I just realise that it looks in
> /usr/src/packages/BUILD/grass-6.4.0RC6/dist.i686-pc-linux-gnu/include
> which is unlikely to exist on your machine, right? 

The path
/usr/src/packages/BUILD/grass-6.4.0RC6/dist.i686-pc-linux-gnu/include/grass/
is on my machine, but the directory is empty. It was made on the Thursday,
leading me to believe that g.extension made it. 

Concerning the include/ directory in my grass install, that apparently
should be installed with the grass-devel package that I installed with my
package manager:

...does /opt/grass/include/ contain anything? Does it have a subdirectory
> grass/ with a series of .h files? This are needed and not found above
> since
> there is something wrong with your paths.

The directory /opt/grass/include/grass/ does indeed exist and it's got 89
*.h files and four folders. Maybe it's just looking at the wrong path?


What reports
> 
> echo $GISBASE
> in a GRASS session? 

It returns
/opt/grass
So it looks like my GISBASE is where my package manager installed it. At
least that's where the relevant files are.


Is it possible that you have two GRASS version installed? 
Don't think so. I deinstalled GRASS with the package manager and then tried
to compile it (see previous entries), but it didn't work. Then I installed
GRASS again with my package manager. Since the compilation failed, I don't
think I've got two version. Plus, the error messages have stayed the same,
both before and after my attempts.

My present course of action:
- Copied the contents of /opt/grass/include/grass/ (all the *.h files)
temporarily to
/usr/src/packages/BUILD/grass-6.4.0RC6/dist.i686-pc-linux-gnu/include/grass/
to see if g.extension can use them now. Then I tried
g.extension r.area
in the shell in a GRASS session. Result:
Fetching <r.area> from GRASS-Addons SVN (be patient)...
A    r.area/main.c
A    r.area/description.html
A    r.area/Makefile
Ausgecheckt, Revision 42961.
Compiling <r.area>...
test -d OBJ.i686-pc-linux-gnu || mkdir -p OBJ.i686-pc-linux-gnu
gcc -I/usr/src/packages/BUILD/grass-6.4.0RC6/dist.i686-pc-linux-gnu/include 
-O2       -DPACKAGE=\""grassmods"\" 
-I/usr/src/packages/BUILD/grass-6.4.0RC6/dist.i686-pc-linux-gnu/include -o
OBJ.i686-pc-linux-gnu/main.o -c main.c
make: *** Keine Regel vorhanden, um das Target
»/usr/src/packages/BUILD/grass-6.4.0RC6/dist.i686-pc-linux-gnu/lib/libgrass_gis.so«, 
  benötigt von
»/usr/src/packages/BUILD/grass-6.4.0RC6/dist.i686-pc-linux-gnu/bin/r.area«,
zu erstellen.  Schluss.
FEHLER: Compilation failed, sorry. Please check above error messages.

So that's a different error than before. Here's the old one:
GRASS 6.4.0RC6 (DornbirnTest):~ > g.extension r.area
Fetching <r.area> from GRASS-Addons SVN (be patient)...
A    r.area/main.c
A    r.area/description.html
A    r.area/Makefile
Checked out revision 42954.
Compiling <r.area>...
test -d OBJ.i686-pc-linux-gnu || mkdir -p OBJ.i686-pc-linux-gnu
gcc -I/usr/src/packages/BUILD/grass-6.4.0RC6/dist.i686-pc-linux-gnu/include 
-O2       -DPACKAGE=\""grassmods"\" 
-I/usr/src/packages/BUILD/grass-6.4.0RC6/dist.i686-pc-linux-gnu/include -o
OBJ.i686-pc-linux-gnu/main.o -c main.c
main.c:19:23: fatal error: grass/gis.h: No such file or directory
compilation terminated.
make: *** [OBJ.i686-pc-linux-gnu/main.o] Error 1
ERROR: Compilation failed, sorry. Please check above error messages.
The new area says it can't find the rule to make the target
»/usr/src/packages/BUILD/grass-6.4.0RC6/dist.i686-pc-linux-gnu/lib/libgrass_gis.so«,
which is needed by
»/usr/src/packages/BUILD/grass-6.4.0RC6/dist.i686-pc-linux-gnu/bin/r.area«.

- I looked in those directories for a "main.o" and a "libgrass_gis.so", but
they weren't there. Now I've deleted the contents of the directory that I'd
temporarily copied so that my folders are back to the state they were in
before I copied them.

Thanks a bunch, by the way, to Marcello for the tip - you mean that, when I
do that, I get the clumped areas back with their value as their area in
hectar? Then I can reclass and take out the areas that are too small? It
should keep the values in m² if I use
r.stats -na input=clumped_map | awk '{print $1,"=",$2}' | r.reclass
input=clumped_map output=clumped_map_AreaHA - --o 
instead of
r.stats -na input=clumped_map | awk '{print $1,"=",int($2/10000)+1}' |
r.reclass input=clumped_map output=clumped_map_AreaHA - --o 
right?

Best,
Daniel
-- 
View this message in context: http://osgeo-org.1803224.n2.nabble.com/Installing-r-area-tp5340139p5363725.html
Sent from the Grass - Users mailing list archive at Nabble.com.


More information about the grass-user mailing list