IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Qt Discussion :

Probleme compilation portage Mac > Pc


Sujet :

Qt

  1. #1
    Membre éclairé Avatar de ttone
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    589
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 589
    Par défaut Probleme compilation portage Mac > Pc
    Le probleme concerne une librairie en particulier, mais il peut être étendu à d'autres et viendrait de la dépendance de Qt à MinGW...

    ***

    J'utilise fmodex.dll dans une appli sous QT,

    QT est compilé avec MinGW, je travail avec son propre compilateur qmake configuré sur win32-g++

    Mon appli a été développé sur Mac, je la porte sur Pc, apparemment tout va, j'ai fais les adaptations nécessaires,

    Mais j'obtiens une liste d'erreurs qui seraient imputables à MinGW :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    undefined reference to 'FMOD_System_Create....'
    undefined reference to 'ZN4FMOD7Channel11getPositionEP....'
    ...


    Quel est votre diagnostic ?

    Merci

  2. #2
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    Salut,

    Tu n'as *apparemment* pas spécifié les librairies FMod dans ton fichier pro. On peut le voir? (les parties spécifiant les librairies tierces)

  3. #3
    Membre éclairé Avatar de ttone
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    589
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 589
    Par défaut
    Oui bien sur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INCLUDEPATH += . ./src/ ./src/inc ./lib/
    LIBS += -lfmodex
    il y a aussi un DEPENDPATH identique et j'ai conservé les header de fmod que j'avais sur mon projet Mac (principalement fmod.hpp, dans le répertoire ./src/inc)



    en ajoutant des librairies dont d'apres otool sur mac je n'ai pas besoin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INCLUDEPATH += . ./src/ ./lib/
    LIBS += -lfmodex -lfmodexp
    j'ai une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cannot find libfmodexp.dll
    en sachant que la lib se nomme fmodexp.dll, son rename en libfmodexp.dll n'y a rien fait, ne l'utilisant pas je suis revenu au .pro originel

    J'ai réussi à faire accepter -lfmodex uniquement en placant la dll dans le dossier lib de Dev-Cpp/MinGW, MinGW que j'ai beaucoup de mal à comprendre :
    C:/Dev-Cpp/MinGW/lib/libfmodex.dll (vaguement dsl)

    A savoir : j'ai installé Dev-Cpp, j'ai modifié le Path des variables d'environnement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Panneau de Configuration/Systeme/Avancé
    J'ai fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ./configure -platform win32-g++
    sur Qt, puis compilé Qt (avec MinGW apparemment).

    (L'erreur serait patchable en compilant avec Cygwin, mais je pense faire une grosse erreur en me lancant la dedans.)

    Enfin j'ai compilé mon .pro avec qmake, après j'ai eu à faire quelques modification substantielles et quelques debugs ignorés sur mac, dont un notable à propos des mkdir (sur mac : mkdir(char, int), sur windows mkdir(int) est accepté uniquement... j'ai donc revu certains includes dans les fichiers sources, pour ajouter direct.h, io.h ou autres includes propres à Windows)

    J'ai récupéré les .dll de libsndfile et fmodex.
    J'ai eu un premier bug sur libsndfile bien vite fixé en placant barbarement libsndfile.dll dans C:/Dev-Cpp/MinGW. Même chose avec fmodex.

    Et bug...

  4. #4
    Membre éclairé Avatar de ttone
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    589
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 589
    Par défaut
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    mac:TEMPLATE = app
    TARGET = Soundlab
     
    #win32:RC_FILE    = icnapp.rc
    mac {
    ICON = styles/icn/icnapp.icns
    QMAKE_INFO_PLIST    = Info.plist
    }
     
    CONFIG += release
    CONFIG += debug
    CONFIG += assistant help
     
    DEPENDPATH += . src src/inc src/ui
    INCLUDEPATH += . src src/ui src/inc
    LD_LIBRARY_PATH += . ./release C:/Windows/system32
     
    LIBS += -lsndfile -lfmodex 
    OBJECTS_DIR = bin/obj
    UI_DIR = src/ui
    MOC_DIR = src/moc
     
    # Input
    HEADERS += src/gui.h \
               src/IDSprofileWindowMONO.h \
               src/IDSprofileWindowSTEREO.h \
               src/SoundSystem.h \
               src/Tache.h \
               src/inc/fmod.h \
               src/inc/fmod.hpp \
               src/inc/fmod_codec.h \
               src/inc/fmod_dsp.h \
               src/inc/fmod_errors.h \
               src/inc/fmod_output.h \
               src/inc/wincompat.h \
    		   src/ui/ui_mainGUI.h
     
    FORMS += src/IDSprofileMONO.ui \
             src/IDSprofileSTEREO.ui
     
    SOURCES += src/gui.cpp \
               src/IDSprofileWindowMONO.cpp \
               src/IDSprofileWindowSTEREO.cpp \
               src/main.cpp \
               src/SoundSystem.cpp \
               src/Tache.cpp
     
     
    RESOURCES += styles.qrc
     
    #Bundlize
    mac:QMAKE_LFLAGS_SONAME += -Wl,-install_name,@executable_path/../Frameworks/libsndfile.1.dylib
    mac:QMAKE_LFLAGS_SONAME += -Wl,-install_name,@executable_path/../Frameworks/libfmodex.dylib
    mac:QMAKE_LFLAGS_SONAME += -Wl,-install_name,@executable_path/../Frameworks/QtCore.framework
    mac:QMAKE_LFLAGS_SONAME += -Wl,-install_name,@executable_path/../Frameworks/QtGui.framework

  5. #5
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    Je ne comprends absolument pas pourquoi tu n'as pas d'erreur à la compilation, mais uniquement à la liaison déjà. Tu ne spécifies pas où trouver les include FMod. Tu utilises une variable d'environnement INCLUDE ?

    Pour les LIBS, il faut ajouter où les trouver; exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    win32:LIBS += -LC:/FMod/Api/lib

  6. #6
    Membre éclairé Avatar de ttone
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    589
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 589
    Par défaut
    ...ca ne résout rien

    Par défaut elle sont cherchées dans C:Windows/system32, sans la spécification dont je n'aurais pas besoin, ca ne marchait pas.

    J'ai rajouté (LIBS +=) le path vers l'api/lib de FMOD mais j'ai la meme erreur.

    J'ai mis les libs problematiques dans le repertoire des libs Qt, idem !


  7. #7
    Membre éclairé Avatar de ttone
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    589
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 589
    Par défaut
    Est il envisageable de compiler malgré tout, et de tester l'exécutable avec la DLL à sa racine ?

  8. #8
    Membre éclairé Avatar de ttone
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    589
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 589
    Par défaut
    Tu utilises une variable d'environnement INCLUDE ?
    Oui

  9. #9
    Membre éclairé Avatar de ttone
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    589
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 589
    Par défaut
    J'ai lu qu'il serait préférable d'utiliser le link implicite vers MinGW, l'utilisateur a donc placé ses DLL FMOD dans C:/MinGW

    J'ai tenté naïvement, échec.
    Je cherche la racine du compilateur et je réessaie.

  10. #10
    Membre éclairé Avatar de ttone
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    589
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 589
    Par défaut
    C'est assez fantastique... les 2 dll FMOD et SNDFILE que j'utilise sont toujours à la même arborescence,

    quand je les supprime, SNDFILE (.dll) manque,
    quand je les remets, undefined reference sur FMOD

  11. #11
    Membre éclairé Avatar de ttone
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    589
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 589
    Par défaut
    la dernière ligne d'erreur porte sur une stdLib... stl_algobas.h :
    undefined reference to 'FMOd_methode_X'
    et bizarrement il va chercher tout ca dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:/MinGW/include/c++/version/bits/stl_algobase.h

    NB : si je rajoute Dev-Cpp aux var path, il prend le meme chemin MAIS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:/Dev-Cpp/include/c++/version/bits/stl_algobase.h
    Mes var d'environnements :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    C:/qt/4.4.0/bin
    C:/MinGW/bin
    C:/FMOD/FMOD/api
    C:/ //pour un test brut sur les dll
    Ma LIBS :

    1 .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LIBS += -LC:/FMOD/FMOD/api -lbsndfile -lfmodex
    ou
    2.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LIBS += -LC:/ -lbsndfile -lfmodex

  12. #12
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    Il faut spécifier le chemin exact des libs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LIBS += -LC:/FMOD/FMOD/api/lib -lbsndfile -lfmodex
    (note le /lib ajouté; sauf si l'arbo a changé entre 2 versions, c'est ainsi chez moi)

  13. #13
    Membre éclairé Avatar de ttone
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    589
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 589
    Par défaut
    Et bien... non, toujours pas

    Les variables d'environnement + Le .pro ... qu'est ce que j'ai bien pu oublier

    Je redoute la ligne à chaque fois, celle ou ca explose :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    g++ -enable-stdcall-fixup -Wl, -enable-auto-import, -Wl, 
    -enable-runtime-pseudo-reloc -mthreads -Wl -Wl, -subsystem, 
    -windows -o debug/Appli.exe object_script.Appli.Debug 
    -L"c:/Qt/4.4.0/bin" -lmingw32 -lqtmaind -Lc:/FMOD/FMOD/api/lib
     -lsndfile -lfmodex ....
    Pas de "" sur le path FMOD ?

  14. #14
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    Pas d'espaces, pas besoin de guillemets
    J'essaierais de faire un petit test vite fait ce soir ou demain soir... Et si ça marche chez moi, j'upload l'archive pour que tu test et qu'on voit si ça vient de l'environnement ou du fichier pro.

  15. #15
    Membre éclairé Avatar de ttone
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    589
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 589
    Par défaut
    Merci!
    Les guillements du path Qt sont générés automatiquement

  16. #16
    Membre éclairé Avatar de ttone
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    589
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 589
    Par défaut
    Salut IrmatDen, as tu pu tester sur ta config ?

  17. #17
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    Mince non, désolé j'ai eu d'autres choses à faire et ça m'est sorti de la tête :s
    Je teste dans la journée si possible, cette nuit sans faute sinon.

  18. #18
    Membre éclairé Avatar de ttone
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    589
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 589
    Par défaut
    Merci, je serai en ligne et sur mon portage en fin d'aprem debut de soirée...

  19. #19
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    J'ai pris un des exemples (3D), et voici le fichier pro nécessaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    TEMPLATE = app
    CONFIG += console
    TARGET = 
    DEPENDPATH += .
    INCLUDEPATH += . C:\FModEx\api\inc
     
    LIBS += -LC:\FModEx\api\lib -lfmodex_vc
     
    # Input
     
    SOURCES += main.cpp
    (sachant que j'utilise VS2005 Express).

    J'ai pas eu le moindre souci, donc je vois pas trop ce qui cloche dans ton cas

  20. #20
    Membre éclairé Avatar de ttone
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    589
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 589
    Par défaut
    Manquant dans mon .pro, , surement ca.

    Ou alors le fait que j'utilise MinGW au lieu de VS2005...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 5 12345 DernièreDernière

Discussions similaires

  1. Cross-compil pour MAC
    Par Ulmo dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 29/09/2006, 19h49
  2. [DEBUTANT] problem compilation eclipse
    Par roninou dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 14/01/2005, 15h59
  3. [JAR]Probleme compilation avec jdom
    Par ronaldgis dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 04/08/2004, 11h31
  4. probleme compilation classe avec Borland c++ compiler 5.5
    Par softblue dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 17/06/2004, 15h16
  5. [Debian] problème compilation jbuilder 9...
    Par Ancien_Do.Urden dans le forum JBuilder
    Réponses: 5
    Dernier message: 20/03/2004, 15h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo