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
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é".
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.
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
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
????
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.
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
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é".