Hello
I have problems compiling a program that uses gis library (and yes I have all the includes right, I think I’m missing some package that I have to install).
Here’s what happens :
gcc -c utils.c
gcc -c -I /usr/lib/grass/include db_mg.c
gcc -c session.c
gcc -c -I /usr/lib/grass/include -L/usr/local/grass6/lib main.c
gcc -o prot1 utils.o db_mg.o session.o main.o -lreadline -lcurses -lgrass_gis
/usr/bin/ld: cannot find -lgrass_gis
collect2: ld returned 1 exit status
make: *** [prot1] Error 1
so I don’t have grass_gis… What must I do to get this fixed ?
Thanks 
gcc -o prot1 utils.o db_mg.o session.o main.o -lreadline -lcurses
-lgrass_gis
/usr/bin/ld: cannot find -lgrass_gis
collect2: ld returned 1 exit status
make: *** [prot1] Error 1
Yoy forgot again the -L/usr/local/grass6/lib switch in the linking
command (you have all the GRASS libs there, haven't you?).
Anyway, the easiest way to start programming against theses libraries
is reusing the code in grass6/vector/v.sample directory, in GRASS
sourcecode. Rename your code as "main.c" and run "make" to compile.
Unfortunately the Makefile file assumes that you managed to compile
and build GRASS, not a trivial task (nor too dificult).
Good luck,
M.
--
-- marcos boullón magán
seabiscuit@ubuntu:/$ ls /usr/local/lib/
firmware/ python2.4/ site_ruby/
seabiscuit@ubuntu:/$ ls /usr/local/lib
firmware python2.4 site_ruby
$ ls /usr/lib/grass/
bin bwidget docs driver etc fonts include lib man scripts
But I think I fixed the problem now! 
Here’s the makefile :
prot1: utils.o db_mg.o session.o main.o
gcc -o prot1 -L/usr/lib/grass/lib utils.o db_mg.o session.o main.o -lreadline -lcurses -lgrass_gis -lm
main.o:
gcc -c -I /usr/lib/grass/include -L/usr/lib/grass/lib main.c
session.o:
gcc -c session.c
db_mg.o:
gcc -c -I /usr/lib/grass/include db_mg.c
utils.o:
gcc -c utils.c
clean:
rm -f *.o *~ prot1
Thanks anyway for the help! 
2006/3/24, marcos boullón magán <marcosboullon@gmail.com>:
gcc -o prot1 utils.o db_mg.o session.o main.o -lreadline -lcurses
-lgrass_gis
/usr/bin/ld: cannot find -lgrass_gis
collect2: ld returned 1 exit status
make: *** [prot1] Error 1
Yoy forgot again the -L/usr/local/grass6/lib switch in the linking
command (you have all the GRASS libs there, haven’t you?).
Anyway, the easiest way to start programming against theses libraries
is reusing the code in grass6/vector/v.sample directory, in GRASS
sourcecode. Rename your code as “main.c” and run “make” to compile.
Unfortunately the Makefile file assumes that you managed to compile
and build GRASS, not a trivial task (nor too dificult).
Good luck,
M.
–
– marcos boullón magán
But I think I fixed the problem now! 
Fantastic! Now I think that the Makefile in v.sample dir (vector
processing sample) is not too useful because it relies in other
Makefiles in the source code tree. Better to show the compiling
process output (only relevant sections):
marcos@venux:~/cvsgrass/grass6/vector/v.sample$ make -n
[...]
gcc -I/home/marcos/cvsgrass/grass6/dist.i686-pc-linux-gnu/include -g
-O2 -Wall -Wconversion -Wno-implicit-int -I/usr/include
-DPACKAGE=\""grassmods"\"
-I/home/marcos/cvsgrass/grass6/dist.i686-pc-linux-gnu/include \
-o OBJ.i686-pc-linux-gnu/main.o -c main.c
gcc -L/home/marcos/cvsgrass/grass6/dist.i686-pc-linux-gnu/lib
-Wl,--export-dynamic
-Wl,-rpath-link,/home/marcos/cvsgrass/grass6/dist.i686-pc-linux-gnu/lib
-I/usr/include -DPACKAGE=\""grassmods"\" -o
/home/marcos/cvsgrass/grass6/dist.i686-pc-linux-gnu/bin/v.sample
OBJ.i686-pc-linux-gnu/main.o -lgrass_vect -lgrass_dig2 -lgrass_dgl
-lgrass_rtree -lgrass_linkm -lgrass_dbmiclient -lgrass_dbmibase
-L/usr/lib -lgdal -lgrass_gis -lgrass_datetime -lz -lm -lz
[...]
marcos@venux:~/cvsgrass/grass6/vector/v.sample$ ls
/home/marcos/cvsgrass/grass6/dist.i686-pc-linux-gnu/lib
libgrass_bitmap.6.1.cvs.so libgrass_dgl.6.1.cvs.so
libgrass_gis.6.1.cvs.so libgrass_linkm.6.1.cvs.so
libgrass_sim.6.1.cvs.so
libgrass_bitmap.so libgrass_dgl.so
libgrass_gis.so libgrass_linkm.so
libgrass_sim.so
libgrass_btree.6.1.cvs.so libgrass_dig2.6.1.cvs.so
libgrass_gmath.6.1.cvs.so libgrass_manage.a
libgrass_sites.6.1.cvs.so
libgrass_btree.so libgrass_dig2.so
libgrass_gmath.so libgrass_ogsf.6.1.cvs.so
libgrass_sites.so
libgrass_cdhc.6.1.cvs.so libgrass_display.6.1.cvs.so
libgrass_gproj.6.1.cvs.so libgrass_ogsf.so
libgrass_sqlp.6.1.cvs.so
libgrass_cdhc.so libgrass_display.so
libgrass_gproj.so libgrass_qtree.6.1.cvs.so
libgrass_sqlp.so
libgrass_D.6.1.cvs.so libgrass_driver.6.1.cvs.so
libgrass_I.6.1.cvs.so libgrass_qtree.so
libgrass_symb.6.1.cvs.so
libgrass_datetime.6.1.cvs.so libgrass_driver.so
libgrass_image.6.1.cvs.so libgrass_raster.6.1.cvs.so
libgrass_symb.so
libgrass_datetime.so libgrass_D.so
libgrass_image.so libgrass_raster.so
libgrass_trans.6.1.cvs.so
libgrass_dbmibase.6.1.cvs.so libgrass_dspf.6.1.cvs.so
libgrass_interpdata.6.1.cvs.so libgrass_rowio.6.1.cvs.so
libgrass_trans.so
libgrass_dbmibase.so libgrass_dspf.so
libgrass_interpdata.so libgrass_rowio.so
libgrass_vask.6.1.cvs.so
libgrass_dbmiclient.6.1.cvs.so libgrass_edit.6.1.cvs.so
libgrass_interpfl.6.1.cvs.so libgrass_rtree.6.1.cvs.so
libgrass_vask.so
libgrass_dbmiclient.so libgrass_edit.so
libgrass_interpfl.so libgrass_rtree.so
libgrass_vect.6.1.cvs.so
libgrass_dbmidriver.6.1.cvs.so libgrass_form.6.1.cvs.so
libgrass_Iortho.6.1.cvs.so libgrass_segment.6.1.cvs.so
libgrass_vect.so
libgrass_dbmidriver.so libgrass_form.so
libgrass_Iortho.so libgrass_segment.so
libgrass_dbstubs.6.1.cvs.so libgrass_g3d.6.1.cvs.so
libgrass_ismap.a libgrass_shape.6.1.cvs.so
libgrass_dbstubs.so libgrass_g3d.so
libgrass_I.so libgrass_shape.so
Hope it helps you to tune your compiling. Regards,
M.
--
-- marcos boullón magán