#1 Le 11/06/2014, à 14:09
- miks3132
Problème d'installation de paquets avec Makefile
Bonjour help !
Pour la 1ère fois j'essaye cette methode (ces paquets ne s'installent qu'avec Makefile), et bien sûr, (Linux == ça_n'est_jamais_simple) = True.
-1ère étape, apparemment pas de pb :
make -f Makefile.Linux
/usr/bin/gcc -Wall $(/usr/bin/sdl-config --cflags) -O3 -c *.car rcs libSDL_layer.a *.o
/usr/bin/gcc -Wall $(/usr/bin/sdl-config --cflags) -O3 -fPIC -c *.c
/usr/bin/gcc -shared -o libSDL_layer.so *.o $(/usr/bin/sdl-config --libs)
-2ème étape : hé merde...:
sudo make install
/usr/bin/gcc -Wall $(/usr/bin/sdl-config --cflags) -O3 -c *.c
ar rcs libSDL_layer.a *.o
/usr/bin/gcc -Wall $(/usr/bin/sdl-config --cflags) -O3 -fPIC -c *.c
/usr/bin/gcc -dynamiclib -o libSDL_layer.dylib *.o $(/usr/bin/sdl-config --libs)
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status
make: *** [all-dynamic] Erreur 1
Quelqu'un pourrait m'expliquer ce ce signifient ces messages d'erreur, je ne comprends pô !! Voici le fichier Makefile : (Merci d'avance !!!)
# Change the install prefix
# if necessary
INSTALL_PATH=/usr/local
sdlconfig=$(shell which sdl-config)
gcc=$(shell which gcc)
ifeq ($(sdlconfig),)
$(error "I need sdl-config to compile")
endif
ifeq ($(gcc),)
$(error "I need gcc to compile")
endif
cflags=-Wall $$($(sdlconfig) --cflags) -O3
libs=$$($(sdlconfig) --libs)
all: all-static all-dynamic
all-static:
$(gcc) $(cflags) -c *.c
ar rcs libSDL_layer.a *.o
all-dynamic:
$(gcc) $(cflags) -fPIC -c *.c
$(gcc) -shared -o libSDL_layer.so *.o $(libs)
demos: all
\cd demos && $(MAKE)
install: all
@echo
@echo Installing all in $(INSTALL_PATH)
\cp -f SDL_Layer.h $(INSTALL_PATH)/include/SDL
\cp -f libSDL_layer.so $(INSTALL_PATH)/lib
\cp -f libSDL_layer.a $(INSTALL_PATH)/lib
@echo "Finished"
@echo
uninstall:
@echo
@echo "Uninstalling all from $(INSTALL_PATH)"
\rm -f $(INSTALL_PATH)/include/SDL/SDL_Layer.h
\rm -f $(INSTALL_PATH)/lib/libSDL_layer.so
\rm -f $(INSTALL_PATH)/lib/libSDL_layer.a
@echo "Finished"
@echo
doc:
\doxygen
docclean:
\rm -Rf doc/html
clean:
\rm -Rf *.o *.so *.a
.PHONY: demos doc
Hors ligne
#2 Le 13/06/2014, à 11:47
- bishop.sad.clown
Re : Problème d'installation de paquets avec Makefile
j'me demande si, comme tu as passé en argument un makefile spécifique pour la compilation, tu ne devrais pas aussi le faire pour l'installation:
sudo make -f Makefile.Linux install
@++ , Rob'
→ Trusty x64
Je n'ai pas toujours les réponses mais je les cherche en même temps que vous... =· þ
Hors ligne