Jump to content

Archived

This topic is now archived and is closed to further replies.

tata2

[C++] Problème Fmodex

Recommended Posts

Bonjour à tous !

Alors voilà, il n' y a pas si longtemps que ça, je me suis initié au C++, j' ai commencé à coder un petit programme pour pratiquer un peu et j' ai besoin de Fmodex !

J' utilise Qt Creator.

J' ai donc téléchargé Fmodex, je commence à linker la librairie, je met les headers, je commence à coder, compiler, hop jolieS erreureS (:

J' ai cherché sur internet, apparemment ce serait des erreurs lors du (linkage ?) de la librairie mais ça fait 2H (réellement) que je navigue sur internet et essaie de résoudre le problème en changeant le code source, les chemins de librairie, à les mettre dans tout les sens, mais bon, rien n' y fait, je ne fais que tourner en rond même en changeant les mots clés sur google ...

Donc j' aimerai bien que vous m' aidiez à comprendre ce qui cloche là dedans.

Je vous laisse mon .pro :

SOURCES += \
   main.cpp

LIBS += -L "C:\projetQt\test2" -lfmodex64_vc

INCLUDEPATH += "C:\projetQt\test2\inc"

Le code en intégralité (le code doit être un copier/coller car j' en suis même venu à changer tout mon code source pour voir si ça ne venait pas de lui) :

#include <QApplication>
#include <QPushButton>
#include <inc/fmod.h>
#include <inc/fmod_codec.h>
#include <inc/fmod_dsp.h>
#include <inc/fmod_output.h>
#include <inc/fmod_memoryinfo.h>


int main(int argc, char *argv[])
{
   QApplication app(argc, argv);
   QWidget fenetre;
   fenetre.setFixedSize(270, 220);
   fenetre.show();
   FMOD_SYSTEM  *sys;
   FMOD_System_Create(&sys);
   FMOD_System_Init(sys, 4, FMOD_INIT_NORMAL, NULL);
   FMOD_SOUND   *sound;
   FMOD_CHANNEL *channel;
   FMOD_System_CreateStream(sys, "test.mp3", FMOD_HARDWARE | FMOD_LOOP_OFF | FMOD_2D, 0, &sound);
   FMOD_System_PlaySound(sys, FMOD_CHANNEL_FREE, sound, 0, &channel);

   return app.exec();
}

Les erreurs :

C:\projetQt\test2_compile\debug\main.o:-1: In function `Z5qMainiPPc':

C:\projetQt\test2_compile\..\test2\main.cpp:20: erreur : undefined reference to `FMOD_System_Create@4'

C:\projetQt\test2_compile\..\test2\main.cpp:21: erreur : undefined reference to `FMOD_System_Init@16'

C:\projetQt\test2_compile\..\test2\main.cpp:24: erreur : undefined reference to `FMOD_System_CreateStream@20'

C:\projetQt\test2_compile\..\test2\main.cpp:25: erreur : undefined reference to `FMOD_System_PlaySound@20'

:-1: erreur : collect2: ld returned 1 exit status

J' avais vu un problème de compatibilité entre Qt et Fmodex mais des gens arrivait à tout faire fonctionner ensemble donc bon, pourquoi pas moi ?

Ce projet est un projet pour tester Fmodex et comprendre comment il fonctionne avant de l' inclure dans mon autre projet donc on peut le retourner dans tout les sens sans soucis (:

Merci d' avance à ceux qui essaieront de m' aider !!

Share this post


Link to post
Share on other sites

Ton problème ne vient pas de Qt, c'est le linker ne trouve pas les fonctions FMOD_.. lors de l'édition de liens.

Je ne connais pas cette librairie, mais il me semble que tu compiles avec GCC, or la lib fmodex64_vc fait apparemment référence à une compilation sous Visual C++.

Les deux ne sont pas compatibles.

Share this post


Link to post
Share on other sites

Non, le problème peut être plus simple: Tu compiles en 32bits et tu linkes avec une librairie 64bits :transpi:

Share this post


Link to post
Share on other sites

Non, le problème peut être plus simple: Tu compiles en 32bits et tu linkes avec une librairie 64bits :transpi:

Hum ...

Je suppose que cette option est dans Qt ? ^^'

Ton problème ne vient pas de Qt, c'est le linker ne trouve pas les fonctions FMOD_.. lors de l'édition de liens.

Je ne connais pas cette librairie, mais il me semble que tu compiles avec GCC, or la lib fmodex64_vc fait apparemment référence à une compilation sous Visual C++.

Les deux ne sont pas compatibles.

Donc il faudrait que je compile sous Qt avec le compilateur visual C++ ?

Share this post


Link to post
Share on other sites

Hum ...

Je suppose que cette option est dans Qt ? ^^'

Si tu es sous Windows, il faut installer MinGW-w64, qui je crois est toujours une beta. Puis paramétrer QtCreator pour utiliser ce compilateur. Il faudra aussi compiler les lib Qt en 64 bit, car la version LGPL du SDK de Qt pour Windows n'est que 32 bit.

Donc il faudrait que je compile sous Qt avec le compilateur visual C++ ?

Oui, ou alors compiler cette lib avec GCC.

Share this post


Link to post
Share on other sites

Non, le problème peut être plus simple: Tu compiles en 32bits et tu linkes avec une librairie 64bits :transpi:

Bonjour. Je cherche a jouer un son en C et j'ai le même problème que tata2.

Peut tu indiquer comment bien linker et compiler ??

Merci

Edit : Mon problème est résolu.

J'ai téléchargé la version 32bits de FMOD.

Tout marche nickel. :D

Share this post


Link to post
Share on other sites

×
×
  • Create New...