[Makefile] GCC sous Linux : /usr/bin/ld: cannot find -lsocket
Bonjour,
Voilà, j'ai un programme en C qui tourne correctement et que je compile avec gcc sous Solaris 10. Mais lorsque j'essaie de le compiler sous Linux (Mandriva 2006), toujours avec gcc , ça ne marche pas :
Citation:
[-----@localhost model]$ make
gcc -o galaxy.out neutr.o Bfield.o coord_convert.o evol_rk4.o nrutil.o odeint.o rkqs.o rkck.o grid.o save.o -lm -lsocket -lnsl -lrpcsvc
/usr/bin/ld: cannot find -lsocket
collect2: ld returned 1 exit status
make: *** [heat.out] Erreur 1
J'obtiens le même message avec Cygwin sous Win98.
Je crois savoir que Solaris est fourni avec la version 3.4.2 de gcc et Mandriva 2006 avec la 4.0.1. Est-ce que cela peut expliquer le message d'erreur ?
Sinon, j'ai essayé d'enlever lsocket du Makefile (je ne sais pas à quoi ça sert), mais j'ai droit à des "undefined reference" dans des parties du programme que je n'ai écrite. Je n'ai pas non plus écrit le Makefile (et je ne sais pas très bien comment ça marche) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| CC=gcc
CFLAGS= -O6 -Wall
#CFLAGS=-Dsun
# -DNO_INTERACTION
#LDFLAGS= -L/usr/local/lib -lm -lrecipes_c
LDFLAGS=
LIBS=-lm -lsocket -lnsl -lrpcsvc
#### CFLAGS options #####
#-Dsun
# If GCC complains about "implicit declarations" etc.
# include option -Dsun to CFLAG's.
#CFLAGS=-O -Wall -Dsun
# I did not write it, because I think Sun's GCC should include it automatically.
#
#-DNO_INTERACTION
# turns off interaction. Only for debugging purposes.
#
#-DIGNORE_ZERO_MODES
# if this flag is absent, program will be aborted when INVERT,SVDCMP or LUDCMP
# try divide by the very small number.
# CC=/usr/local/gnu/bin/gcc
####
P_OBJS=neutr.o Bfield.o coord_convert.o evol_rk4.o nrutil.o odeint.o rkqs.o rkck.o grid.o save.o
heat.out: $(P_OBJS)
$(CC) $(LDFLAGS) -o galaxy.out $(P_OBJS) $(LIBS) |
Y-a-t-il un problème dedans ? Est-il possible de le modifier pour que ça compile sous Linux ?
Merci d'avance pour votre aide.