Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Systèmes de compilation Discussion :

Edit de makefile


Sujet :

Systèmes de compilation

  1. #1
    Membre régulier
    Edit de makefile
    Hello world

    Béotien en edit/création de makefile j'ai réussi a édité certain paramètre mais ce séche sur d'autres, le makefile

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    #
    # update this variable to wherever you installed the OpenXDK libraries
    #
    PREFIX=/home/magnum/nxdk
     
    CC = i686-w64-mingw32-gcc
    CXBE = /home/magnum/nxdk/tools/cxbe
    #SDLFLAGS = -DENABLE_XBOX -DDISABLE_CDROM 
     
    CC_FLAGS = -m32 -march=i386 -O0 -g -shared -std=gnu99 -ffreestanding -nostdlib -fno-builtin -fno-exceptions # $(SDLFLAGS)
    INCLUDE  = -I$(PREFIX)/lib #-I$(PREFIX)/include/SDL
     
    CLINK = -nostdlib -m32 -march=i386 -O0 -g 
    ALIGN = -Wl,--file-alignment,0x20 -Wl,--section-alignment,0x20 
    SHARED = -shared
    ENTRYPOINT = -Wl,--entry,_WinMainCRTStartup 
    STRIP = -Wl,--strip-all 
    LD_FLAGS = -m32 -march=i386 -O0 $(CLINK) $(ALIGN) $(SHARED) $(ENTRYPOINT) $(STRIP)
    LD_DIRS = -L$(PREFIX)/lib -L$(PREFIX)/lib 
    LD_LIBS  = -L$(PREFIX)/lib - hal - usb - c - hal - c - xboxkrnl #-lSDL 
     
    all: launch-chihiro.xbe
     
    transfer: launch-chihiro.xbe
    	wput -u ftp://xbox<img src="images/smilies/icon_mad.gif" border="0" alt="" title=":x" class="inlineimg" />box@192.168.177.80:21/E/Games/VC3/default.xbe launch-chihiro.xbe
     
    log:
    	@echo "---"
    	@wget -q -O - ftp://xbox<img src="images/smilies/icon_mad.gif" border="0" alt="" title=":x" class="inlineimg" />box@192.168.177.80:21/E/chihiro/log.txt
    	@echo "---"
     
    .c.o:
    	$(CC) -c $< $(CC_FLAGS) $(INCLUDE)
     
    launch-chihiro.exe: launch-chihiro.o 
    	$(CC) -o $@ $< $(LD_LIBS) $(LD_FLAGS)
     
    launch-chihiro.xbe: launch-chihiro.exe
    	$(CXBE) -TITLE:"Chihiro-Launcher" -DUMPINFO:"cxbe.txt" -OUT:"$@" $< > /dev/null
     
    clean: 
    	rm -f *.o *.exe *.dll *.xbe *.cxbe cxbe.txt


    le message d'erreur:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ~/Chihiro Launcher Original code (backup)/Chihiro Launcher 7$ make
    i686-w64-mingw32-gcc -o launch-chihiro.exe launch-chihiro.o -L/home/magnum/nxdk/lib - hal - usb - c - hal - c - xboxkrnl  -m32 -march=i386 -O0 -nostdlib -m32 -march=i386 -O0 -g  -Wl,--file-alignment,0x20 -Wl,--section-alignment,0x20  -shared -Wl,--entry,_WinMainCRTStartup  -Wl,--strip-all 
    i686-w64-mingw32-gcc: error: hal: Aucun fichier ou dossier de ce type
    i686-w64-mingw32-gcc: error: usb: Aucun fichier ou dossier de ce type
    i686-w64-mingw32-gcc: error: c: Aucun fichier ou dossier de ce type
    i686-w64-mingw32-gcc: error: hal: Aucun fichier ou dossier de ce type
    i686-w64-mingw32-gcc: error: c: Aucun fichier ou dossier de ce type
    i686-w64-mingw32-gcc: error: xboxkrnl: Aucun fichier ou dossier de ce type
    Makefile:36*: la recette pour la cible «*launch-chihiro.exe*» a échouée
    make: *** [launch-chihiro.exe] Erreur 1


    le path ou se trouve les fichier que j'essaye de pointé ce trouve :

    /home/magnum/nxdk

    Auriez vous une idée SVP?

    Merci

  2. #2
    Expert éminent sénior
    Je suis comme makefile, c'est quoi " - hal - usb - c - hal - c - xboxkrnl" ???

  3. #3
    Expert éminent sénior
    un makefile ne fait qu'automatiser l'appel de commandes.
    Il faut d'abord maîtriser la compilation manuelle du projet avant de vouloir à l'automatiser.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  4. #4
    Membre régulier
    Citation Envoyé par bacelar Voir le message
    Je suis comme makefile, c'est quoi " - hal - usb - c - hal - c - xboxkrnl" ???
    Merci des headers.

  5. #5
    Expert éminent sénior
    Merci des headers.
    Alors ça n'a rien à faire dans "LD_LIBS".
    LD, c'est pour linker, il s'en cogne le linker des "headers".
    LIBS, c'est pour libraries, bibliothèques en français, et un "header", c'est pas une bibliothèque.

    Les "headers", ça s'utilise via des #include dans le fichier du code source.

    Mais bon, ils ont une sale tête pour des "headers".
    Si c'est des "REPERTOIRES" d'en-têtes, c'est dans la "variable" "INCLUDE=" qu'il faut les mettre.
    Mais dans ce cas, le format est très mauvais, prenez exemple sur ce qui est déjà mis dans cette variable.

    En un mot, c'est pas un foutant des chaines de caractères pifométriques dans une ligne au hasard dans un makefile qu'on arrive à un résultat

    Commencez par savoir ce que vous avez à faire avant de toucher à tout et n'importe quoi.

  6. #6
    Membre régulier
    Une derniere chose je me suis mal exprimé..je voulais dir des folder avec des header à l'interieur....

  7. #7
    Rédacteur/Modérateur

    Après 5 messages, on arrive enfin à deviner que ce sont sensés être des dossiers contenant des fichiers inclus dans le code... Enfin ça reste de la devinette et extrapolation
    Et dans ce cas ça s'appelle un include directory, 2s sur Google ou juste en lisant l'existant on trouve la variable INCLUDE qui sert à ça.
    Une autre seconde sur Google, ou encore une fois en lisant l'existant que tu montres, et tu saurais que la syntaxe pour ajouter un répertoire d'include est -Ipath
    Tout comme tu as désactivé l'include du répertoire de la SDL.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.