astromatic / sextractor

Extract catalogs of sources from astronomical images
http://astromatic.net/software/sextractor
GNU General Public License v3.0
148 stars 43 forks source link

Error during installation when compiling from source #63

Closed shruti-ramaiya closed 3 months ago

shruti-ramaiya commented 3 months ago

Hi,

I am currently trying to install SExtractor by building from source following the instructions in the docs. Downloading, unzipping the file and running the ./configure script runs fine. However, when running 'make -j', I encounter the following error (pasted whole terminal output for completeness),

Making all in src Making all in fits gcc -DHAVE_CONFIG_H -I. -I../.. -g -O2 -MT fitsbody.o -MD -MP -MF .deps/fitsbody.Tpo -c -o fitsbody.o fitsbody.c gcc -DHAVE_CONFIG_H -I. -I../.. -g -O2 -MT fitscat.o -MD -MP -MF .deps/fitscat.Tpo -c -o fitscat.o fitscat.c gcc -DHAVE_CONFIG_H -I. -I../.. -g -O2 -MT fitscheck.o -MD -MP -MF .deps/fitscheck.Tpo -c -o fitscheck.o fitscheck.c gcc -DHAVE_CONFIG_H -I. -I../.. -g -O2 -MT fitscleanup.o -MD -MP -MF .deps/fitscleanup.Tpo -c -o fitscleanup.o fitscleanup.c gcc -DHAVE_CONFIG_H -I. -I../.. -g -O2 -MT fitsconv.o -MD -MP -MF .deps/fitsconv.Tpo -c -o fitsconv.o fitsconv.c gcc -DHAVE_CONFIG_H -I. -I../.. -g -O2 -MT fitshead.o -MD -MP -MF .deps/fitshead.Tpo -c -o fitshead.o fitshead.c gcc -DHAVE_CONFIG_H -I. -I../.. -g -O2 -MT fitskey.o -MD -MP -MF .deps/fitskey.Tpo -c -o fitskey.o fitskey.c gcc -DHAVE_CONFIG_H -I. -I../.. -g -O2 -MT fitsmisc.o -MD -MP -MF .deps/fitsmisc.Tpo -c -o fitsmisc.o fitsmisc.c gcc -DHAVE_CONFIG_H -I. -I../.. -g -O2 -MT fitsread.o -MD -MP -MF .deps/fitsread.Tpo -c -o fitsread.o fitsread.c gcc -DHAVE_CONFIG_H -I. -I../.. -g -O2 -MT fitstab.o -MD -MP -MF .deps/fitstab.Tpo -c -o fitstab.o fitstab.c gcc -DHAVE_CONFIG_H -I. -I../.. -g -O2 -MT fitsutil.o -MD -MP -MF .deps/fitsutil.Tpo -c -o fitsutil.o fitsutil.c gcc -DHAVE_CONFIG_H -I. -I../.. -g -O2 -MT fitswrite.o -MD -MP -MF .deps/fitswrite.Tpo -c -o fitswrite.o fitswrite.c mv -f .deps/fitsread.Tpo .deps/fitsread.Po mv -f .deps/fitswrite.Tpo .deps/fitswrite.Po mv -f .deps/fitsutil.Tpo .deps/fitsutil.Po mv -f .deps/fitstab.Tpo .deps/fitstab.Po mv -f .deps/fitsmisc.Tpo .deps/fitsmisc.Po mv -f .deps/fitsconv.Tpo .deps/fitsconv.Po mv -f .deps/fitscleanup.Tpo .deps/fitscleanup.Po mv -f .deps/fitscheck.Tpo .deps/fitscheck.Po mv -f .deps/fitscat.Tpo .deps/fitscat.Po mv -f .deps/fitshead.Tpo .deps/fitshead.Po mv -f .deps/fitskey.Tpo .deps/fitskey.Po mv -f .deps/fitsbody.Tpo .deps/fitsbody.Po rm -f libfits.a ar cru libfits.a fitsbody.o fitscat.o fitscheck.o fitscleanup.o fitsconv.o fitshead.o fitskey.o fitsmisc.o fitsread.o fitstab.o fitsutil.o fitswrite.o ranlib libfits.a Making all in levmar gcc -DHAVE_CONFIG_H -I. -I../.. -g -O2 -MT Axb.o -MD -MP -MF .deps/Axb.Tpo -c -o Axb.o Axb.c gcc -DHAVE_CONFIG_H -I. -I../.. -g -O2 -MT lmbc.o -MD -MP -MF .deps/lmbc.Tpo -c -o lmbc.o lmbc.c gcc -DHAVE_CONFIG_H -I. -I../.. -g -O2 -MT lm.o -MD -MP -MF .deps/lm.Tpo -c -o lm.o lm.c gcc -DHAVE_CONFIG_H -I. -I../.. -g -O2 -MT lmblec.o -MD -MP -MF .deps/lmblec.Tpo -c -o lmblec.o lmblec.c gcc -DHAVE_CONFIG_H -I. -I../.. -g -O2 -MT lmbleic.o -MD -MP -MF .deps/lmbleic.Tpo -c -o lmbleic.o lmbleic.c gcc -DHAVE_CONFIG_H -I. -I../.. -g -O2 -MT lmlec.o -MD -MP -MF .deps/lmlec.Tpo -c -o lmlec.o lmlec.c gcc -DHAVE_CONFIG_H -I. -I../.. -g -O2 -MT misc.o -MD -MP -MF .deps/misc.Tpo -c -o misc.o misc.c In file included from lmbc.c:59: lmbc_core.c: In function 'slnsrch': compiler.h:63:19: warning: implicit declaration of function 'finite' [-Wimplicit-function-declaration] 63 | #define LM_FINITE finite // ICC, GCC | ^~~~~~ lmbc_core.c:324:20: note: in expansion of macro 'LM_FINITE' 324 | if (!LM_FINITE(fpls)) { | ^~~~~~~~~ In file included from lm.c:59: lm_core.c: In function 'slevmar_der': compiler.h:63:19: warning: implicit declaration of function 'finite' [-Wimplicit-function-declaration] 63 | #define LM_FINITE finite // ICC, GCC | ^~~~~~ lm_core.c:206:7: note: in expansion of macro 'LM_FINITE' 206 | if(!LM_FINITE(p_eL2)) stop=7; | ^~~~~~~~~ mv -f .deps/lmblec.Tpo .deps/lmblec.Po mv -f .deps/lmlec.Tpo .deps/lmlec.Po mv -f .deps/lmbleic.Tpo .deps/lmbleic.Po mv -f .deps/Axb.Tpo .deps/Axb.Po mv -f .deps/lm.Tpo .deps/lm.Po mv -f .deps/misc.Tpo .deps/misc.Po mv -f .deps/lmbc.Tpo .deps/lmbc.Po rm -f liblevmar.a ar cru liblevmar.a Axb.o lmbc.o lm.o lmblec.o lmbleic.o lmlec.o misc.o ranlib liblevmar.a Making all in wcs gcc -DHAVE_CONFIG_H -I. -I../.. -g -O2 -MT cel.o -MD -MP -MF .deps/cel.Tpo -c -o cel.o cel.c gcc -DHAVE_CONFIG_H -I. -I../.. -g -O2 -MT lin.o -MD -MP -MF .deps/lin.Tpo -c -o lin.o lin.c gcc -DHAVE_CONFIG_H -I. -I../.. -g -O2 -MT poly.o -MD -MP -MF .deps/poly.Tpo -c -o poly.o poly.c gcc -DHAVE_CONFIG_H -I. -I../.. -g -O2 -MT proj.o -MD -MP -MF .deps/proj.Tpo -c -o proj.o proj.c gcc -DHAVE_CONFIG_H -I. -I../.. -g -O2 -MT sph.o -MD -MP -MF .deps/sph.Tpo -c -o sph.o sph.c gcc -DHAVE_CONFIG_H -I. -I../.. -g -O2 -MT tnx.o -MD -MP -MF .deps/tnx.Tpo -c -o tnx.o tnx.c gcc -DHAVE_CONFIG_H -I. -I../.. -g -O2 -MT wcs.o -MD -MP -MF .deps/wcs.Tpo -c -o wcs.o wcs.c gcc -DHAVE_CONFIG_H -I. -I../.. -g -O2 -MT wcstrig.o -MD -MP -MF .deps/wcstrig.Tpo -c -o wcstrig.o wcstrig.c mv -f .deps/wcstrig.Tpo .deps/wcstrig.Po mv -f .deps/sph.Tpo .deps/sph.Po mv -f .deps/cel.Tpo .deps/cel.Po mv -f .deps/tnx.Tpo .deps/tnx.Po mv -f .deps/lin.Tpo .deps/lin.Po mv -f .deps/wcs.Tpo .deps/wcs.Po mv -f .deps/poly.Tpo .deps/poly.Po mv -f .deps/proj.Tpo .deps/proj.Po rm -f libwcs_c.a ar cru libwcs_c.a cel.o lin.o poly.o proj.o sph.o tnx.o wcs.o wcstrig.o ranlib libwcs_c.a gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT analyse.o -MD -MP -MF .deps/analyse.Tpo -c -o analyse.o analyse.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT assoc.o -MD -MP -MF .deps/assoc.Tpo -c -o assoc.o assoc.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT astrom.o -MD -MP -MF .deps/astrom.Tpo -c -o astrom.o astrom.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT back.o -MD -MP -MF .deps/back.Tpo -c -o back.o back.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT bpro.o -MD -MP -MF .deps/bpro.Tpo -c -o bpro.o bpro.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT catout.o -MD -MP -MF .deps/catout.Tpo -c -o catout.o catout.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT check.o -MD -MP -MF .deps/check.Tpo -c -o check.o check.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT clean.o -MD -MP -MF .deps/clean.Tpo -c -o clean.o clean.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT dgeo.o -MD -MP -MF .deps/dgeo.Tpo -c -o dgeo.o dgeo.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT extract.o -MD -MP -MF .deps/extract.Tpo -c -o extract.o extract.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT fft.o -MD -MP -MF .deps/fft.Tpo -c -o fft.o fft.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT field.o -MD -MP -MF .deps/field.Tpo -c -o field.o field.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT filter.o -MD -MP -MF .deps/filter.Tpo -c -o filter.o filter.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT fitswcs.o -MD -MP -MF .deps/fitswcs.Tpo -c -o fitswcs.o fitswcs.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT flag.o -MD -MP -MF .deps/flag.Tpo -c -o flag.o flag.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT graph.o -MD -MP -MF .deps/graph.Tpo -c -o graph.o graph.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT growth.o -MD -MP -MF .deps/growth.Tpo -c -o growth.o growth.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT header.o -MD -MP -MF .deps/header.Tpo -c -o header.o header.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT image.o -MD -MP -MF .deps/image.Tpo -c -o image.o image.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT interpolate.o -MD -MP -MF .deps/interpolate.Tpo -c -o interpolate.o interpolate.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT makeit.o -MD -MP -MF .deps/makeit.Tpo -c -o makeit.o makeit.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT manobjlist.o -MD -MP -MF .deps/manobjlist.Tpo -c -o manobjlist.o manobjlist.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT misc.o -MD -MP -MF .deps/misc.Tpo -c -o misc.o misc.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT neurro.o -MD -MP -MF .deps/neurro.Tpo -c -o neurro.o neurro.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT pattern.o -MD -MP -MF .deps/pattern.Tpo -c -o pattern.o pattern.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT pc.o -MD -MP -MF .deps/pc.Tpo -c -o pc.o pc.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT photom.o -MD -MP -MF .deps/photom.Tpo -c -o photom.o photom.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT plist.o -MD -MP -MF .deps/plist.Tpo -c -o plist.o plist.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT prefs.o -MD -MP -MF .deps/prefs.Tpo -c -o prefs.o prefs.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT profit.o -MD -MP -MF .deps/profit.Tpo -c -o profit.o profit.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT psf.o -MD -MP -MF .deps/psf.Tpo -c -o psf.o psf.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT readimage.o -MD -MP -MF .deps/readimage.Tpo -c -o readimage.o readimage.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT refine.o -MD -MP -MF .deps/refine.Tpo -c -o refine.o refine.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT retina.o -MD -MP -MF .deps/retina.Tpo -c -o retina.o retina.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT scan.o -MD -MP -MF .deps/scan.Tpo -c -o scan.o scan.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT som.o -MD -MP -MF .deps/som.Tpo -c -o som.o som.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT weight.o -MD -MP -MF .deps/weight.Tpo -c -o weight.o weight.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT winpos.o -MD -MP -MF .deps/winpos.Tpo -c -o winpos.o winpos.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT xml.o -MD -MP -MF .deps/xml.Tpo -c -o xml.o xml.c gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT ldactoasc.o -MD -MP -MF .deps/ldactoasc.Tpo -c -o ldactoasc.o ldactoasc.c mv -f .deps/bpro.Tpo .deps/bpro.Po mv -f .deps/assoc.Tpo .deps/assoc.Po mv -f .deps/analyse.Tpo .deps/analyse.Po mv -f .deps/astrom.Tpo .deps/astrom.Po mv -f .deps/retina.Tpo .deps/retina.Po mv -f .deps/flag.Tpo .deps/flag.Po mv -f .deps/check.Tpo .deps/check.Po mv -f .deps/graph.Tpo .deps/graph.Po mv -f .deps/filter.Tpo .deps/filter.Po mv -f .deps/catout.Tpo .deps/catout.Po mv -f .deps/back.Tpo .deps/back.Po mv -f .deps/fft.Tpo .deps/fft.Po mv -f .deps/readimage.Tpo .deps/readimage.Po mv -f .deps/pc.Tpo .deps/pc.Po mv -f .deps/refine.Tpo .deps/refine.Po mv -f .deps/misc.Tpo .deps/misc.Po mv -f .deps/plist.Tpo .deps/plist.Po mv -f .deps/manobjlist.Tpo .deps/manobjlist.Po mv -f .deps/main.Tpo .deps/main.Po mv -f .deps/som.Tpo .deps/som.Po mv -f .deps/field.Tpo .deps/field.Po mv -f .deps/ldactoasc.Tpo .deps/ldactoasc.Po mv -f .deps/interpolate.Tpo .deps/interpolate.Po /bin/sh ../libtool --tag=CC --mode=link gcc -g -O2 -o ldactoasc ldactoasc.o ./fits/libfits.a -L/opt/homebrew/Cellar/openblas/0.3.26/lib -lopenblas -L/opt/homebrew/Cellar/fftw/3.3.10_1/lib -lfftw3f -lm mv -f .deps/weight.Tpo .deps/weight.Po mv -f .deps/growth.Tpo .deps/growth.Po mv -f .deps/dgeo.Tpo .deps/dgeo.Po mv -f .deps/header.Tpo .deps/header.Po mv -f .deps/neurro.Tpo .deps/neurro.Po mv -f .deps/clean.Tpo .deps/clean.Po mv -f .deps/winpos.Tpo .deps/winpos.Po mv -f .deps/extract.Tpo .deps/extract.Po mv -f .deps/xml.Tpo .deps/xml.Po mv -f .deps/fitswcs.Tpo .deps/fitswcs.Po mv -f .deps/scan.Tpo .deps/scan.Po mv -f .deps/image.Tpo .deps/image.Po mv -f .deps/pattern.Tpo .deps/pattern.Po mv -f .deps/makeit.Tpo .deps/makeit.Po mv -f .deps/photom.Tpo .deps/photom.Po mv -f .deps/prefs.Tpo .deps/prefs.Po libtool: link: gcc -g -O2 -o ldactoasc ldactoasc.o ./fits/libfits.a -L/opt/homebrew/Cellar/openblas/0.3.26/lib -lopenblas -L/opt/homebrew/Cellar/fftw/3.3.10_1/lib -lfftw3f -lm duplicate symbol '_gstr' in: ./fits/libfits.a(fitsmisc.o) ./fits/libfits.a(fitsbody.o) duplicate symbol '_bswapflag' in: ldactoasc.o ./fits/libfits.a(fitsbody.o) duplicate symbol '_gstr' in: ./fits/libfits.a(fitsmisc.o) ./fits/libfits.a(fitscat.o) duplicate symbol '_bswapflag' in: ldactoasc.o ./fits/libfits.a(fitscat.o) duplicate symbol '_gstr' in: ./fits/libfits.a(fitsmisc.o) ./fits/libfits.a(fitscheck.o) duplicate symbol '_bswapflag' in: ldactoasc.o ./fits/libfits.a(fitscheck.o) duplicate symbol '_gstr' in: ./fits/libfits.a(fitsmisc.o) ./fits/libfits.a(fitscleanup.o) duplicate symbol '_bswapflag' in: ldactoasc.o ./fits/libfits.a(fitscleanup.o) duplicate symbol '_gstr' in: ./fits/libfits.a(fitsmisc.o) ./fits/libfits.a(fitshead.o) duplicate symbol '_bswapflag' in: ldactoasc.o ./fits/libfits.a(fitshead.o) duplicate symbol '_gstr' in: ./fits/libfits.a(fitsmisc.o) ./fits/libfits.a(fitskey.o) duplicate symbol '_bswapflag' in: ldactoasc.o ./fits/libfits.a(fitskey.o) duplicate symbol '_bswapflag' in: ldactoasc.o ./fits/libfits.a(fitsmisc.o) duplicate symbol '_gstr' in: ./fits/libfits.a(fitsmisc.o) ./fits/libfits.a(fitsread.o) duplicate symbol '_bswapflag' in: ldactoasc.o ./fits/libfits.a(fitsread.o) duplicate symbol '_gstr' in: ./fits/libfits.a(fitsmisc.o) ./fits/libfits.a(fitstab.o) duplicate symbol '_bswapflag' in: ldactoasc.o ./fits/libfits.a(fitstab.o) duplicate symbol '_gstr' in: ./fits/libfits.a(fitsmisc.o) ./fits/libfits.a(fitsutil.o) duplicate symbol '_bswapflag' in: ldactoasc.o ./fits/libfits.a(fitsutil.o) ld: 19 duplicate symbols for architecture arm64 collect2: error: ld returned 1 exit status make[3]: *** [ldactoasc] Error 1 make[3]: *** Waiting for unfinished jobs.... mv -f .deps/psf.Tpo .deps/psf.Po mv -f .deps/profit.Tpo .deps/profit.Po make[2]: *** [all-recursive] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2

this seems to indicate that there are duplicate symbols which are found in several files. However, I'm unsure how to go about fixing this, as I haven't touched the source code and don't know the consequences that changing these symbols in these files will have on the installation (if that is how to approach this). Any insight would be much appreciated.

Thank you

edit: I am on macOS (some other similar issues seemed to be geared towards linux distributions and use the apt-get solution as a workaround but this isn't available on Mac)

kirxkirx commented 3 months ago

As discussed in https://github.com/astromatic/sextractor/issues/62 the code cannot be compiled in parallel with make -j. It should be compiling fine with simple make (without -j).

ebertin commented 3 months ago

See #62.

shruti-ramaiya commented 3 months ago

Thanks both - I got the same error using make alone too. Instead I just installed SE with homebrew (which was my fallback plan as I wanted to try get a system wide install first) and it seems to be working fine.