[GRASS-dev] 64 bit compiling of GRASS 7 on Mac - /lib/vector/diglib fails

William Kyngesburye woklist at kyngchaos.com
Tue Jan 13 22:56:24 EST 2009


On Jan 13, 2009, at 9:34 PM, Michael Barton wrote:

> I tried again to compile GRASSS 7 in 64 bit mode on the Mac. Thanks  
> to various fixes of the past few weeks, I had only one error and was  
> able to make a functioning app. Here is the error. If it can be  
> fixed, then we can run GRASS in 64 bit on the Mac (without nviz of  
> course).
>
Well, the problem I had when I last tried 64bits wasn't the  
compilation, but at runtime.  Some of the vector modules would crash,  
and the closest I could track it down was (I think) somewhere in the  
diglib...  And as I write this it connects in my brain that your  
compilation error is in diglib...

> Finished compilation: Tue Jan 13 18:15:15 MST 2009
> make: *** [default] Error 1
> cmb-MBP-2:grass7_src cmbarton$ cd /Users/cmbarton/grass_dev/ 
> grass7_src/lib/vector/diglib
> cmb-MBP-2:diglib cmbarton$ make
> if [ "" != "" -a -f "".html ] ; then make html ; fi
> make OBJ.i386-apple-darwin9.6.0/test
> echo "==============TEST============="
> ==============TEST=============
> gcc -L/Users/cmbarton/grass_dev/grass7_src/dist.i386-apple- 
> darwin9.6.0/lib -arch i386 -arch i386 -Os -arch i386 -arch i386 - 
> Os     -arch i386 -arch x86_64 -Os   -I/Library/Frameworks/ 
> GDAL.framework/Versions/1.6/Headers  -I/Users/cmbarton/grass_dev/ 
> grass7_src/dist.i386-apple-darwin9.6.0/include  -o OBJ.i386-apple- 
> darwin9.6.0/test test.c -lgrass_dig2 -lgrass_gis -lgrass_datetime - 
> lz     -lgrass_rtree  -lgrass_rtree \
> 				-lgrass_gis -lgrass_datetime -lz     -lgrass_datetime  -lz
> ld warning: in /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple- 
> darwin9.6.0/lib/libgrass_dig2.dylib, file is not of required  
> architecture
> ld warning: in /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple- 
> darwin9.6.0/lib/libgrass_gis.dylib, file is not of required  
> architecture
> ld warning: in /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple- 
> darwin9.6.0/lib/libgrass_datetime.dylib, file is not of required  
> architecture
> ld warning: in /Users/cmbarton/grass_dev/grass7_src/dist.i386-apple- 
> darwin9.6.0/lib/libgrass_rtree.dylib, file is not of required  
> architecture
> Undefined symbols for architecture x86_64:
>   "_dig_fflush", referenced from:

...

It looks like the error was really back in those 4 libraries - they  
didn't compile with x86_64 for some reason.

Try make clean in those folders and make again, and check that -arch  
x86_64 is in all compile commands and the final link command.

I'll give it a try myself...

-----
William Kyngesburye <kyngchaos*at*kyngchaos*dot*com>
http://www.kyngchaos.com/

First Pogril: Why is life like sticking your head in a bucket filled  
with hyena offal?
Second Pogril: I don't know.  Why IS life like sticking your head in a  
bucket filled with hyena offal?
First Pogril: I don't know either.  Wretched, isn't it?

-HitchHiker's Guide to the Galaxy




More information about the grass-dev mailing list