>>IrmatDen,
Je travail avec BootCamp (Windows sur Mac), est ce que ca ne pose pas un probleme de choix de la version FMOD (Win32b ou Win64b) ?
>>IrmatDen,
Je travail avec BootCamp (Windows sur Mac), est ce que ca ne pose pas un probleme de choix de la version FMOD (Win32b ou Win64b) ?
Aucune idée, je ne suis pas utilisateur Mac (à part au taf, mais pas pour coder)
Merci pour ton aide, je suis en voie d'en finir...
Quelles options as tu choisies à l'installation de qt ?
(lors du configure)
Surtout quelle plateforme ?
Merci
(tu installes Qt à la console ou avec l'installeur ?)
J'ai testé au taf:
* option du configure: "-no-qmake -dont-process -debug-and-release"
* version Qt 4.3.0
* win xp sp2
* vc++2005 express
* le tout compilé à la main par la console
?-no-qmake
C'est essentiel pour compiler via une IDE ?
Je compilais en console, mais je n'aurais pas pensé à ca pour passer en mode IDE
en revanche j'aurais chercher à préciser une -platform...
Heu, à relire en fait, c'est une recompilation que j'ai fait par la suite, une install un brin peu bidouillée quoi
le -platform n'est pas nécessaire si QMAKESPEC est définie, ce que j'ai pour habitude de faire dès l'installation d'un système. En bref: aucune des options n'a le moindre rapport avec l'utilisation ou non de FModEx (enfin, s'il y a une raison logique...)
Y'a pas moyen qeu tu upload ton code quelque part et qu'on puisse le tester? Ca sera un tantinet plus simple (ou encore mieux, tu reproduis le problème sur un exemple minimal et tu fournis une archive contenant le minimum (fichierc pro, cpp et les éventuels en-tête)
ok je vais faire ca
je teste sur une nouvelle machine (mac octocoeur svp )
je vais passer par DevCpp
Je suis passé par l'installeur Trolltech (.exe), je n'ai eu qu'à lui indiquer le répertoire DevCpp contenant MinGw comme sur le tuto Qt Template pour DevCpp de developpeur.com
tout est résolu, ca compil proprement sans soucis, mes libraires sont toutes trouvées
mais j'ai toujours une undefined reference sur FMOD (qui est trouvée je précise, si je change le nom du path, j'ai un "-lfmodex" introuvable, l'undefined apparait donc bien alors que la dll est trouvée)
N'est ce pas tout simplement du à MinGW ?
Essaie de compiler l'un des exemples fournis avec FMod alors; ils fournissent un fichier .bat pour compiler avec MinGW. Si ça échoue, il reste encore un problème sinon, c'est un problème dans le fichier pro.
Ok merci
PS : tu utilises bien fmod.hpp ? pas fmod.h ? (en C++)
J'ai repris l'un des exemples, et c'est bien le hpp qui est utilisé
J'ai regardé les sources des exemples, aucun soucis, j'ai bien la même chose , j'ai testé un remplacement de <> par "" sur les includes fmod, idem.
tu compiles avec quoi ? Quelle -platform ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 #include "inc/fmod.hpp" #include "inc/fmod_errors.h" #include "inc/wincompat.h"
Peux tu me montrer tes includes stp ?
J'ai pris le fichier main.cpp de l'exemple fourni avec FMod "3D", le fichier .pro est celui que j'ai posté il y a quelques jours, et l'environnement est toujours le même qu'à chaque fois que tu poses la question
et oui mais toi tu fais du vsmc, pas du mingw...
-lfmodex_vcJe crois que c'est par là que ca bigrevisual studio
TOujours selon l'exemple 3d, il te "suffirait" de lier contre libfmodex.a. Et avec le bon QMAKESPEC (ie, mingw32-g++ ou un truc du genre), c'est ce fichier qu'il va chercher si tu ajoutes -lfmodex.
Bien sûr, c'est la théorie, et tout à l'air bon dans ton cas :/
T'as déjà tenté le sacrifice de poulet ou l'eau bénite?
J'ai mieux, fossoyeur de forums,
j'en ai trouvé un qui conseil ardemment de placer ta lib dynamique à la racine du compilo...
Qu'as tu fait de toutes ces .dll et .a de FMOD ?
Perso :
1. J'ai linker le répoertoire C:/FMODex/api/lib dans PATH
2. J'ai linker le répoertoire C:/FMODex/api/lib dans .pro
3. J'ai placer un .dll et un .a dans le dossier release
4. Je n'ai PAS placé de librairies (.dll ou .a) dans C:/MinGW
Tout est à sa place, les méthodes de cochon, je prend pas
On est d'accord.
Ecoute merci pour ton aide et ta rigueur.
Je vais aller poster sur FMOD, le simple fait que pour Windows on ait du
et pour unix du
Code : Sélectionner tout - Visualiser dans une fenêtre à part fmod.dll
me semble bizarre... mais je connais mal windows (oui ca existe)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 LIBfmod.a
ah mais attend... il faut utiliser les .a avec MinGW ???
Toujours pas d'exemple à fournir qui reproduise le problème? Vu que j'ai moi j'ai une install Qt4.4/MinGW en parallèle de mon install principale, je pourrais tester...
Okay soit donc voici un .pro :
Un main.cpp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 ###################################################################### # Automatically generated by qmake (2.01a) jeu. 19. juin 19:38:55 2008 ###################################################################### TEMPLATE = app TARGET = DEPENDPATH += . INCLUDEPATH += . /inc LIBS += -LC:\FmodEx\api\lib -lfmodex # Input HEADERS += gui.h SOURCES += gui.cpp \ main.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 #include <qapplication.h> #include <QtCore/QtCore> #include "gui.h" int main( int argc, char **argv ){ QApplication app( argc, argv ); GUI gui_ids; gui_ids.show(); return app.exec(); }
un gui.h :
Et un gui.cpp quasi vide qui contient dans son constructeur :
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 #include <fmod.hpp> #include <fmod_errors.h> #include <wincompat.h> using namespace std; class GUI : public QMainWindow { Q_OBJECT public: GUI(QWidget *parent=0); ~GUI(); private: FMOD::System *system; FMOD::Channel *channel; FMOD::Sound *sound; };
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 FMOD::System_Create(&system); system->getVersion(&version); if (version < FMOD_VERSION) {QMessageBox::warning(0,tr("Error"), tr("Error! You are using an old version of FMODex"));} channel = new FMOD::Channel; sound = new FMOD::Sound; system->createSound("test.mp3", FMOD_SOFTWARE, 0, &sound); sound->setMode(FMOD_LOOP_NORMAL); system->playSound(FMOD_CHANNEL_FREE, sound, false/*pause*/, &channel);
- rajouter un mp3 test.mp3 à la racine du .pro
- rajouter le contenu de (*)C:/Fmodex/api/include dans un dossier "inc" à la racine du .pro
- linker dans le Path vers le répertoire FMOD(*), C:/MinGW/libexec/gcc/mingw32/3.4.2 dans Démarrer/PanneauConfig/Systèmes/Avancé
- dans Démarrer/PanneauConfig/Systèmes/Avancé
ajouter Qmakespec avec comme valeur win32-g++
PS : je précise que je n'ai d'undefined reference QUE dans les classes qui instancient des objets FMOD ou utilisent des méthodes FMOD, les classes qui incluent FMOD mais ne l'utilise pas ne me posent pas de problèmes.
PS2 : les undefined reference ont lieu sur les binaires .o (normal me diriez vous)
PS3 : j utilise uniquement les .dll, mais j'ai entendu parler de .a sur WinXP ?
PS4 : sauvez moi
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager