Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur compilation ( file truncated) en C

erreur avec librairie Fmod

    23 janvier 2021 à 15:08:14

    Bonjour,

    Je souhaite jouer un son avec la librairie Fmod, j'ai un message d'erreur lors de la compilation.

    je débute avec la bibliothèque.

    je code sous visual studio, en C , a l'aide du WSL.

    Voici mon message d'erreur du compilateur :

    gcc -g -Wall -c main.c
    gcc -g -Wall -c fonction.c 
    gcc -Wall main.o fonction.o -o main ./tpGfx/libisentlib.a ./Fmod_linux/libfmod.so -lm -lglut -lGL -lX11
    ./Fmod_linux/libfmod.so: file not recognized: File truncated
    collect2: error: ld returned 1 exit status
    makefile:6: recipe for target 'main' failed
    make: *** [main] Error 1

    Merci d'avance pour votre aide

    • Partager sur Facebook
    • Partager sur Twitter
      23 janvier 2021 à 16:20:30

      -

      -
      Edité par edgarjacobs 23 janvier 2021 à 16:21:02

      • Partager sur Facebook
      • Partager sur Twitter

      On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

        23 janvier 2021 à 16:43:02

        edgarjacobs a écrit:

        -

        -
        Edité par edgarjacobs il y a 20 minutes

        bonjour, il n'y a rien dans votre message 

        -
        Edité par alinga 23 janvier 2021 à 16:43:52

        • Partager sur Facebook
        • Partager sur Twitter
          23 janvier 2021 à 16:51:28

          Non, car j'avais écrit une bêtise.
          • Partager sur Facebook
          • Partager sur Twitter

          On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

            23 janvier 2021 à 17:08:44

            Bonjour,

            Je n'en suis pas sur, mais pour compiler avec une bibliothèque, avec gcc il faut ajouter un argument -l[nom de la lib], non ?

            Personnellement, je compile une fichier avec SDL en utilisant ... `sdl2-config --libs` -lSDL2_ttf -lSDL2_mixer ...

            Je ne sait pas si c'est pareil avec fmod, mais par exemple si je veux utiliser math.h, je dois en plus mettre -lm dans ma ligne de compilation.

            Cependant, je ne pense pas que j'aurais la même erreur que toi, plus qqchose comme

            /usr/bin/ld : /tmp/ccXLcW2I.o : dans la fonction « Init() » :
            /home/malo_montill-ubuntu/Documents/jeux/RPG/main.cpp:31 : référence indéfinie vers « Mix_OpenAudio »
            collect2: error: ld returned 1 exit status
            

            Si j'enlève "-lSDL2_mixer".

            De plus, autre différence, tu utilise visual studio alors que j'utilise directement gcc. Mais peut également être la raison de la différence du nom de l'erreur.

            J'espère t'avoir au moins donné une piste.

            Bonne chance !

            -
            Edité par Durza42 23 janvier 2021 à 17:08:58

            • Partager sur Facebook
            • Partager sur Twitter

            La gentillesse est le langage qu'un sourd peut entendre et qu'un aveugle peut voir.

            Il n'y a qu'un seul monde et il est faux, cruel, contradictoire, séduisant et dépourvu de sens. Un monde ainsi constitué est le monde réel. Nous avons besoin de mensonges pour conquérir cette réalité, cette "vérité".

              23 janvier 2021 à 18:02:05

              Donc windows, WSL, …

              D'où provient cette bibliothèque ? Surtout d'où vient ce fichier .so ?

              L'erreur que tu obtiens est vraisemblablement due à un problème de format de fichier objet … en l'occurrence le .so (la bibliothèque dynamique) est prévue pour une ABI linux 64bits et tu es en Win32 … pas bon.

              Que donnent les commandes :

              file main.o
              file ./Fmod_linux/libfmod.so
              



              • Partager sur Facebook
              • Partager sur Twitter
                23 janvier 2021 à 18:20:42

                rouloude a écrit:

                WSL: Windows Subsystem for Linux


                OK, et tu downloades quelle version binaire des bibliothèques ?
                • Partager sur Facebook
                • Partager sur Twitter
                  24 janvier 2021 à 12:03:24

                  je n'étais pas sur au début j'avais télécharger fmod pour windows et durant la compilation j'avais des erreurs. j'ai essayer avec la version Linux et la j'ai eu mes erreurs avec le fameux files truncated


                  en tapant la ligne de commande cité pour la lib.so je remarque qu'elle est vide. Je prend celle qui me parait adéquate et maintenant j'ai un nouveau message d'erreur 

                  gcc -g -Wall -c main.c
                  gcc -g -Wall -c fonction.c 
                  gcc -Wall main.o fonction.o -o main ./tpGfx/libisentlib.a ./Fmod_linux/libfmod.so.12.7  -lm -lglut -lGL -lX11 
                  rm *.o
                  ./main: error while loading shared libraries: libfmod.so.12: cannot open shared object file: Permission denied
                  makefile:2: recipe for target 'run' failed
                  make: *** [run] Error 127


                  White Crow a écrit:

                  rouloude a écrit:

                  WSL: Windows Subsystem for Linux


                  OK, et tu downloades quelle version binaire des bibliothèques ?



                  -
                  Edité par alinga 24 janvier 2021 à 12:20:52

                  • Partager sur Facebook
                  • Partager sur Twitter
                    24 janvier 2021 à 13:12:47

                    White Crow a écrit:

                    Que donnent les commandes :

                    file main.o
                    file ./Fmod_linux/libfmod.so
                    




                    ????
                    • Partager sur Facebook
                    • Partager sur Twitter
                      24 janvier 2021 à 13:45:53

                      J'ai du passer en super utilisateur et j'ai eu ca 

                      gcc -g -Wall -c main.c
                      gcc -g -Wall -c fonction.c 
                      gcc -Wall main.o fonction.o -o main ./tpGfx/libisentlib.a ./Fmod_linux/libfmod.so.12.7 -lm -lglut -lGL -lX11 -L/Fmod_linux  
                      rm *.o
                      ./main: error while loading shared libraries: /usr/lib/libfmod.so.12: file too short
                      makefile:2: recipe for target 'run' failed
                      make: *** [run] Error 127



                      White Crow a écrit:

                      White Crow a écrit:

                      Que donnent les commandes :

                      file main.o
                      file ./Fmod_linux/libfmod.so
                      




                      ????



                      • Partager sur Facebook
                      • Partager sur Twitter
                        24 janvier 2021 à 15:58:12

                        Jamais deux sans trois... ;)
                        • Partager sur Facebook
                        • Partager sur Twitter
                          24 janvier 2021 à 17:19:47

                          @alinga

                          Il faut exécuter les commandes que je te donne. La commande file te permet de connaître le format d'un fichier, par exemple :

                          $ file c_elf.o 
                          c_elf.o: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=82b79b520b3c5a14b325f6c976e87441583a4386, not stripped
                          $ file c_w32.o 
                          c_w32.o: PE32+ executable (console) x86-64, for MS Windows
                          

                          J'ai deux fichiers objets mais qui ne sont pas compilé pour le même OS …

                          Si tu exécutes les commandes que je t'ai donné, je pourrais déterminer le format dont tu as besoin et le format que tu as téléchargé …

                          donc …

                          White Crow a écrit:

                          White Crow a écrit:

                          Que donnent les commandes :

                          file main.o
                          file ./Fmod_linux/libfmod.so

                          ????

                          • Partager sur Facebook
                          • Partager sur Twitter

                          Erreur compilation ( file truncated) en C

                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                          • Editeur
                          • Markdown