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

wxWidgets Discussion :

Installation Code::Blocks et wxWidgets


Sujet :

wxWidgets

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2003
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 29
    Points : 24
    Points
    24
    Par défaut Installation Code::Blocks et wxWidgets
    Bonjour,

    Je suis en train de devenir dingue, ça fait plus de 6 heures que j'essaie vainement d'installer ce bazar
    J'ai donc téléchargé :
    - wxWidgets-3.1.4.7z
    -codeblocks-20.03mingw-setup.exe
    dézippez et installer tout ça dans un dossier c:\Programmation
    J'ai donc les deux dossiers :
    C:\Programmation\CodeBlocks
    C:\Programmation\wxWidgets-3.1.4

    Jusque là, ça va !
    J'ai mis dans le PATH le chemin C:\Programmation\CodeBlocks\MinGW\bin en tout premier pour être sûr qu'il sera bien utilisé.

    J'ouvre une console et je vais dans le dossier msw :
    cd C:\Programmation\wxWidgets-3.1.4\build\msw

    Je teste mingw32
    mingw32-make -v
    Pas de problème, il répond

    Je tente la compilation (ligne que j'ai vu dans un autre post) :
    mingw32-make -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1 clean

    Et c'est là que ça plante. J'ai une palangué de message d'erreur de la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    process_begin: CreateProcess(NULL, C:/ProgramData/Oracle/Java/javapath/ -c "if exist gcc_mswudll\*.o del gcc_mswudll\*.o
    ", ...) failed.
    make (e=5): AccÞs refusÚ.
    mingw32-make: [makefile.gcc:5217: clean] Error 5 (ignored)
    process_begin: CreateProcess(NULL, C:/ProgramData/Oracle/Java/javapath/ -c "if exist gcc_mswudll\*.d del gcc_mswudll\*.d
    ", ...) failed.
    make (e=5): AccÞs refusÚ.
    Rien à faire, j'ai tout essayé, impossible de compiler quoi que ce soit.
    Info : je suis sous windows7 64 bits

    J'ai cherché sur Internet, j'ai vu quelques problèmes similaires mais qui datent et pas de solution

    Toutes suggestions est la bien venue !!!

    A++

  2. #2
    Membre à l'essai
    Inscrit en
    Mars 2003
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 29
    Points : 24
    Points
    24
    Par défaut
    Je le crois pas, je crois que j'ai trouvé ce qui manquait : SHELL=CMD.exe !!

    Donc on a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    mingw32-make SHELL=CMD.exe -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1 clean
    mingw32-make SHELL=CMD.exe -f makefile.gcc setup_h USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1 CXXFLAGS="-fno-keep-inline-dllexport -std=gnu++11"
    mingw32-make SHELL=CMD.exe -j4 -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1 CXXFLAGS="-fno-keep-inline-dllexport -std=gnu++11"
     
    mingw32-make SHELL=CMD.exe -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=debug UNICODE=1 clean
    mingw32-make SHELL=CMD.exe -f makefile.gcc setup_h USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=debug UNICODE=1 CXXFLAGS="-fno-keep-inline-dllexport -std=gnu++11"
    mingw32-make SHELL=CMD.exe -j4 -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=debug UNICODE=1 CXXFLAGS="-fno-keep-inline-dllexport -std=gnu++11"
    Comme quoi, suffit de poser la question pour trouver la réponse !
    Mais y aura certainement d'autres problèmes

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2003
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 29
    Points : 24
    Points
    24
    Par défaut
    Ok, les emmerdes continuent !
    Compilation Ok.
    Dans Code::Blocks, je définie la variable globale :
    wx = C:\Programmation\wxWidgets-3.1.4

    Puis je tente de créer un projet wxWidgets et à la fin j'ai le message :
    A matching release configuration cannot be found in the wxWidgets directory you spécified ...
    et idem pour debug

    J'en ai marre, qu'est-ce qu'il veut encore ?

  4. #4
    Membre averti Avatar de wxXav
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Décembre 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur amateur

    Informations forums :
    Inscription : Décembre 2008
    Messages : 214
    Points : 354
    Points
    354
    Par défaut
    Salut.

    Citation Envoyé par lirey Voir le message
    ......
    A matching release configuration cannot be found in the wxWidgets directory you spécified ...
    et idem pour debug

    J'en ai marre, qu'est-ce qu'il veut encore ?
    Il veut juste que tes options de compilation de wxWidgets correspondent à celles que tu cherches à utiliser pour ton nouveau projet.

    Tout d'abord (je ne sais plus si c'est comme ça par défaut donc je préfère le péciser) : il faut que le champ "wxWidget's location" corresponde à ton installation.
    Comme tu as défini la variable "wx" dans Code::Blocks, tu peux l'utiliser pour ce champ et mettre : $(#wx)

    Et d'après tes options de compilation de wxWidgets, il faut que tu coches les options suivants un peu plus loin :
    • Use wxWidgets DLL
    • wxWidgets is built as a monolithic library
    • Enable unicode


    Normalement, ça devrait le faire.

    Courage
    Xav'

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2003
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 29
    Points : 24
    Points
    24
    Par défaut
    Salut Xav,

    Merci pour ta réponse. Effectivement j'avais oublié de cocher "Unicode"
    Mais bon, j'ai encore un problème. A la fin du wizard, j'ai le message :
    "Coudn't parse newly created Wxc file wxSmith support is disabled"
    C'est quoi son problème maintenant ?

    A++
    Lionel

  6. #6
    Membre averti Avatar de wxXav
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Décembre 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur amateur

    Informations forums :
    Inscription : Décembre 2008
    Messages : 214
    Points : 354
    Points
    354
    Par défaut
    Hello.

    Là, je ne sais pas trop d'où vient le problème (je n'utilise jamais wxSmith car je code mes interfaces manuellement).

    Essaye déjà de compiler un simple projet wxWidgets sans wxSmith ou wxFormBuilder comme méthode préféréé pour créer l'interface.

    Ensuite, tu verras pour éventuellement passer sur un projet avec wxSmith.

    Enfin, ce n'est que mon avis.....

    Tiens moi au courant de tes progrès...

    @+
    Xav'

  7. #7
    Membre à l'essai
    Inscrit en
    Mars 2003
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 29
    Points : 24
    Points
    24
    Par défaut
    Pfiouu, ça y est, j'y suis arrivé !
    Faut juste ne pas cocher la case "Create Empty project".
    Ca me paraissait logique de cocher, mais faut pas !
    En tout cas, j'ai enfin réussi à afficher une fenêtre avec un malheureux bouton

  8. #8
    Membre à l'essai
    Inscrit en
    Mars 2003
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 29
    Points : 24
    Points
    24
    Par défaut
    Bon question supplémentaire :
    Je vois que pour une malheureuse fenêtre avec un bouton, même en release, je dois me coltiner une DLL de 26 Mo !
    (avec Delphi, j'ai des exe de 3-4 Mo)
    Donc question :
    - quelles seraient les options de compilation pour avoir un seul exécutable plus léger
    - question subsidiaire, je risque pas d'avoir des problèmes avec les autres compilations de Wx (j'ai eu assez de mal avec les premières !)
    A++
    Lionel

  9. #9
    Membre averti Avatar de wxXav
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Décembre 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur amateur

    Informations forums :
    Inscription : Décembre 2008
    Messages : 214
    Points : 354
    Points
    354
    Par défaut
    Hello.

    En effet, l'option "MONOLITHIC" simplifie le link de ton application, mais tu coup tu refiles toute la lib wxWidgets en un coup.

    Essaye déjà avec "MONOLITHIC=0" dans tes options de compilation : tu obtiendras plusieurs dll au lieu d'une seule, et tu pourras ne pas fournir celles que tu n'utilises pas.
    Le revers de la médaille est qu'il y a un peu plus de fichiers libs à passer au linker mais une fois que c'est réglé, tu n'auras plus de problème.

    Pour ma part, pour la version "release" des mes dlls, j'ajoute l'option "DEBUG_FLAG=0" à la ligne de commande pour compiler les libs, et j'ajoute ensuite "wxDEBUG_LEVEL=0" aux options de compilateur pour mes applications.
    Ça aura pour effet de supprimer certains messages d'avertissements et également de réduire (un tout petit peu) la taille des dlls.

    Ensuite, si tu ne veux fournir qu'un seul exécutable, il faut passer par les libs "statiques" (SHARED=0 dans les options de compilation wxWidgets).
    Suivant ta version de MinGW, tu auras peut-être une petite dll à fournir mais c'est tout : ton exécutable devrait faire 5 ou 6 Mo.

    @+
    Xav'

  10. #10
    Membre à l'essai
    Inscrit en
    Mars 2003
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 29
    Points : 24
    Points
    24
    Par défaut
    Salut

    Merci pour ces précisions. Je vais faire ça, pour l'instant en monolithic pour le développement puis je verrais pour faire une version static.
    Là je teste Code::Blocks mais je me demande si je ne vais pas plutôt prendre Eclipse. Je connais Eclipse et il m'a l'air plus efficace. Par contre, j'ai vu que l'utilisation de wxWidgets n'est pas simple, beaucoup de trucs à paramétrer !
    Quand à wxSmith, moi qui est l'habitude de Delphi et la VCL, c'est pas terrible !

    A++
    Lionel

  11. #11
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 474
    Points
    11 474
    Billets dans le blog
    11
    Par défaut
    Salut !

    J'adore wxWidgets, et c'est la lib que je choisis à chaque fois que je dois faire de la GUI en C++.
    Par contre, quand on est habitué à des tools de création de GUI tels que VCL, Visual Studio (en C++, via les MFC, avec un éditeur GUI pas dégueu) ou QtCreator, alors clairement ça pèche pour wxWidgets.

    wxSmith est amusant 5 min, mais on se sent vite limité.

    Du coup, si tu veux faire de l'IHM via un éditeur d'IHM, je ne peux que te déconseiller wxWidgets.

    De plus, Code::Blocks est quand même bien moisi. Son seul avantage est son intégration de wxSmith, mais bon... je le vois pas tellement comme un avantage ^^'
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  12. #12
    Membre à l'essai
    Inscrit en
    Mars 2003
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 29
    Points : 24
    Points
    24
    Par défaut
    Salut,

    Après ces quelques semaines de test, je suis en accord avec tes propos. wxWidgets est une excellente librairie mais pas au niveau de la VCL. Quand on est habitué à la VCL, y a pas mal de trucs qui manquent. Par exemple, un truc tout bête, c'est l'héritage des propriétés graphiques (couleur, fonte) des composants. La simple propriété "Tag" me manque aussi. Les sizer de wxWidgets sont puissants mais assez compliqué à utiliser. Je préfère nettement la manière de faire de la VCL qui n'en a pas besoin (les propriétés d'alignement et d'ancre sont plus intuitives et tout aussi puissantes).
    wxSmith est bien pour débuter mais pas assez stable ni pratique pour une grosse application. Mais c'est pratique pour tester rapidement le squelette d'une frame.
    Code::bloks est clairement pas au niveau d'eclipse mais là aussi, ça permet de démarrer rapidement.

    A++
    Lionel

  13. #13
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 474
    Points
    11 474
    Billets dans le blog
    11
    Par défaut
    Pour le C++, je mets Eclipse en dessous de Code::Blocks, en fait ^^'.
    Ben oui, Eclipse est fait pour le Java à la base, pas pour le C++, et on peut installer ce qu'on y veut, on n'arrivera pas au niveau d'un QtCreator, CLion, VSCode, ou mon préféré: Visual Studio, ni même au niveau d'un Code::Blocks, qui est fait pour le C++
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  14. #14
    Membre à l'essai
    Inscrit en
    Mars 2003
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 29
    Points : 24
    Points
    24
    Par défaut
    Oui mais moi je veux un truc qui marche aussi sous Linux et open source

  15. #15
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 474
    Points
    11 474
    Billets dans le blog
    11
    Par défaut
    Sous Linux et MacOS, je me sers de VSCode, qui est open source
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  16. #16
    Membre à l'essai
    Inscrit en
    Mars 2003
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 29
    Points : 24
    Points
    24
    Par défaut
    Salut,

    Bon nouveau problème dans les options de compilation.
    Je souhaite utiliser wxFreeChart mais je n'arrive pas à avoir la version "shared = 0". Quand je linke mon projet, j'ai des erreurs genre undefined wxGCDC.

    J'ai vu qu'il fallait rajouter --enable-graphics-ctx à la compilation de wxWidgets.

    Ma ligne de compilation devient donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mingw32-make SHELL=CMD.exe -j4 -f makefile.gcc USE_XRC=1 SHARED=0 MONOLITHIC=0 BUILD=release UNICODE=1 CXXFLAGS="-std=gnu++11 --enable-graphics-ctx"
    Mais ça compile pas. J'ai l'erreur suivante :
    cc1plus.exe: error: unknown pass graphics-ctx specified in -fenable
    Une idée de ce qui foire ?

    Sinon wxFreeChart est un super composant malheureusement plus mis à jour depuis 2014. Est-ce que vous connaitriez un bon remplaçant ?


  17. #17
    Membre averti Avatar de wxXav
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Décembre 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur amateur

    Informations forums :
    Inscription : Décembre 2008
    Messages : 214
    Points : 354
    Points
    354
    Par défaut
    Salut.

    Le "enable_graphics_ctx" n'est valable que si tu utilises "configure" (en gros sous Linux ou OS X, ou éventuellement MSYS).

    Avec un simple MinGW, il faut modifier le fichier "setup.h" :
    Si ce n'est pas déjà fait par une compilation précédente, il faut d'abord faire une copie de "/include/setup0.h" que tu nommes "setup.h" et que tu places dans le même dossier.
    Ensuite, dans ce fichier, tu fais une recherche de "wxUSE_GRAPHICS_CONTEXT" (vers la ligne n°810). il y a un test qui n'active cette valeur que pour MSVC : il faut également la forcer pour les autres compilateurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    // Notice that we can't use wxCHECK_VISUALC_VERSION() nor wxCHECK_GCC_VERSION()
    // here as this file is included from wx/platform.h before they're defined.
    #if defined(_MSC_VER) || \
        (defined(__MINGW32__) && (__GNUC__ > 4 || __GNUC_MINOR__ >= 8))
    #define wxUSE_GRAPHICS_CONTEXT 1
    #else
    // Disable support for other Windows compilers, enable it if your compiler
    // comes with new enough SDK or you installed the headers manually.
    //
    // Notice that this will be set by configure under non-Windows platforms
    // anyhow so the value there is not important.
    #define wxUSE_GRAPHICS_CONTEXT 1  // Cette valeur est sur "0" par défaut
    #endif
    Ensuite, tu peux relancer la compilation (assure toi de bien faire un full rebuild en vidant le dossier lib correspondant sinon le fichier "setup.h" qui s'y trouve ne sera pas remplacé).

    @+
    Xav'

  18. #18
    Membre à l'essai
    Inscrit en
    Mars 2003
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 29
    Points : 24
    Points
    24
    Par défaut
    Salut

    Ok merci mais malheureusement ça n'aide pas la compilation SHARED=0 de FreeChart
    A la fin de la compilation lors de la création de l'archive, j'ai toujours une palanqué d'erreur de la forme :
    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
     
    C:\Programmation\wxWidgets-3.1.4\lib\gcc_lib/libwxmsw31u_aui.a(auilib_tabartmsw.o):tabartmsw.cpp:(.text+0x58d): undefined reference to `__imp_OpenThemeData'
    C:\Programmation\wxWidgets-3.1.4\lib\gcc_lib/libwxmsw31u_aui.a(auilib_tabartmsw.o):tabartmsw.cpp:(.text+0x5d1): undefined reference to `__imp_DrawThemeBackground'
    C:\Programmation\wxWidgets-3.1.4\lib\gcc_lib/libwxmsw31u_aui.a(auilib_tabartmsw.o):tabartmsw.cpp:(.text+0x5f7): undefined reference to `__imp_CloseThemeData'
    C:\Programmation\wxWidgets-3.1.4\lib\gcc_lib/libwxmsw31u_aui.a(auilib_tabartmsw.o):tabartmsw.cpp:(.text+0x63b): undefined reference to `__imp_CloseThemeData'
    C:\Programmation\wxWidgets-3.1.4\lib\gcc_lib/libwxmsw31u_aui.a(auilib_tabartmsw.o):tabartmsw.cpp:(.text+0x8c0): undefined reference to `__imp_OpenThemeData'
    ....
    C:\Programmation\wxWidgets-3.1.4\lib\gcc_lib/libwxmsw31u_core.a(corelib_utilsgui.o):utilsgui.cpp:(.text+0x588): undefined reference to `__imp_SHAutoComplete'
    C:\Programmation\wxWidgets-3.1.4\lib\gcc_lib/libwxmsw31u_core.a(corelib_uxtheme.o):uxtheme.cpp:(.text+0x6): undefined reference to `__imp_IsAppThemed'
    C:\Programmation\wxWidgets-3.1.4\lib\gcc_lib/libwxmsw31u_core.a(corelib_uxtheme.o):uxtheme.cpp:(.text+0x22): undefined reference to `__imp_IsThemeActive'
    C:\Programmation\wxWidgets-3.1.4\lib\gcc_lib/libwxmsw31u_core.a(corelib_window.o):window.cpp:(.text+0xcb18): undefined reference to `__imp_OpenThemeData'
    C:\Programmation\wxWidgets-3.1.4\lib\gcc_lib/libwxmsw31u_core.a(corelib_window.o):window.cpp:(.text+0xcb3b): undefined reference to `__imp_GetThemeColor'
    C:\Programmation\wxWidgets-3.1.4\lib\gcc_lib/libwxmsw31u_core.a(corelib_window.o):window.cpp:(.text+0xcba0): undefined reference to `__imp_CloseThemeData'
    C:\Programmation\wxWidgets-3.1.4\lib\gcc_lib/libwxmsw31u_core.a(corelib_window.o):window.cpp:(.text+0xcc5a): undefined reference to `__imp_CloseThemeData'
    ...
    C:\Programmation\wxWidgets-3.1.4\lib\gcc_lib/libwxmsw31u_core.a(corelib_msw_notebook.o):notebook.cpp:(.text+0x5dc5): undefined reference to `__imp_CloseThemeData'
    C:\Programmation\wxWidgets-3.1.4\lib\gcc_lib/libwxbase31u.a(baselib_dlmsw.o):dlmsw.cpp:(.text+0x2d7a): undefined reference to `GetFileVersionInfoSizeW'
    C:\Programmation\wxWidgets-3.1.4\lib\gcc_lib/libwxbase31u.a(baselib_dlmsw.o):dlmsw.cpp:(.text+0x3026): undefined reference to `GetFileVersionInfoW'
    C:\Programmation\wxWidgets-3.1.4\lib\gcc_lib/libwxbase31u.a(baselib_dlmsw.o):dlmsw.cpp:(.text+0x3049): undefined reference to `VerQueryValueW'
    collect2.exe: error: ld returned 1 exit status
    mingw32-make: *** [makefile.gcc:372: ..\sample\wxFreeChartDemo_lib.exe] Error 1
    Ma ligne de commande est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    mingw32-make SHELL=CMD.exe -j4 -f makefile.gcc WX_SHARED=0 SHARED=0 WX_MONOLITHIC=0 MONOLITHIC=0 WX_BUILD=release BUILD=release WX_UNICODE=1 UNICODE=1 WX_VERSION=31 CXXFLAGS="-std=gnu++11"
    et
    mingw32-make SHELL=CMD.exe -j4 -f makefile.gcc WX_SHARED=0 SHARED=0 WX_MONOLITHIC=0 MONOLITHIC=0 WX_BUILD=debug BUILD=debug WX_UNICODE=1 UNICODE=1 WX_VERSION=31 CXXFLAGS="-std=gnu++11"
    Je pense qu'il doit y avoir un bug dans le makefile car aussi le mode debug ne fonctionne pas.

    Pour info, voici les premières lignes de la compilation en mode release :
    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
     
    if not exist gccmswu mkdir gccmswu
    if not exist ..\lib\gcc_lib mkdir ..\lib\gcc_lib
    g++ -c -o gccmswu\wxfreechart_lib_legend.o -DHAVE_W32API_H  -D_UNICODE  -D__WXMSW__ -IC:\Programmation\wxWidgets-3.1.4\lib\gcc_lib\mswu -IC:\Programmation\wxWidgets-3.1.4\include -O2  -W -Wall -I..\include  -std=gnu++11 -MTgccmswu\wxfreechart_lib_legend.o -MFgccmswu\wxfreechart_lib_legend.o.d -MD -MP ../src/legend.cpp
    g++ -c -o gccmswu\wxfreechart_lib_pieplot.o -DHAVE_W32API_H  -D_UNICODE  -D__WXMSW__ -IC:\Programmation\wxWidgets-3.1.4\lib\gcc_lib\mswu -IC:\Programmation\wxWidgets-3.1.4\include -O2  -W -Wall -I..\include  -std=gnu++11 -MTgccmswu\wxfreechart_lib_pieplot.o -MFgccmswu\wxfreechart_lib_pieplot.o.d -MD -MP ../src/pie/pieplot.cpp
    g++ -c -o gccmswu\wxfreechart_lib_art.o -DHAVE_W32API_H  -D_UNICODE  -D__WXMSW__ -IC:\Programmation\wxWidgets-3.1.4\lib\gcc_lib\mswu -IC:\Programmation\wxWidgets-3.1.4\include -O2  -W -Wall -I..\include  -std=gnu++11 -MTgccmswu\wxfreechart_lib_art.o -MFgccmswu\wxfreechart_lib_art.o.d -MD -MP ../src/art.cpp
    ...
    g++ -c -o gccmswu\wxFreeChartDemo_lib_timeseriesdemos.o -DHAVE_W32API_H  -D_UNICODE  -D__WXMSW__ -IC:\Programmation\wxWidgets-3.1.4\lib\gcc_lib\mswu -IC:\Programmation\wxWidgets-3.1.4\include -O2  -W -Wall -I..\include  -std=gnu++11 -MTgccmswu\wxFreeChartDemo_lib_timeseriesdemos.o -MFgccmswu\wxFreeChartDemo_lib_timeseriesdemos.o.d -MD -MP ../sample/timeseriesdemos.cpp
    g++ -c -o gccmswu\wxFreeChartDemo_lib_titledemos.o -DHAVE_W32API_H  -D_UNICODE  -D__WXMSW__ -IC:\Programmation\wxWidgets-3.1.4\lib\gcc_lib\mswu -IC:\Programmation\wxWidgets-3.1.4\include -O2  -W -Wall -I..\include  -std=gnu++11 -MTgccmswu\wxFreeChartDemo_lib_titledemos.o -MFgccmswu\wxFreeChartDemo_lib_titledemos.o.d -MD -MP ../sample/titledemos.cpp
    g++ -c -o gccmswu\wxFreeChartDemo_lib_xydemos.o -DHAVE_W32API_H  -D_UNICODE  -D__WXMSW__ -IC:\Programmation\wxWidgets-3.1.4\lib\gcc_lib\mswu -IC:\Programmation\wxWidgets-3.1.4\include -O2  -W -Wall -I..\include  -std=gnu++11 -MTgccmswu\wxFreeChartDemo_lib_xydemos.o -MFgccmswu\wxFreeChartDemo_lib_xydemos.o.d -MD -MP ../sample/xydemos.cpp
    if not exist ..\sample mkdir ..\sample
    if exist ..\lib\gcc_lib\libwxcode_msw31u_freechart.a del ..\lib\gcc_lib\libwxcode_msw31u_freechart.a
    ar rcu ..\lib\gcc_lib\libwxcode_msw31u_freechart.a gccmswu\wxfreechart_lib_legend.o gccmswu\wxfreechart_lib_pieplot.o gccmswu\wxfreechart_lib_art.o gccmswu\wxfreechart_lib_multiplot.o gccmswu\wxfreechart_lib_ganttdataset.o gccmswu\wxfreechart_lib_ganttsimpledataset.o gccmswu\wxfreechart_lib_ganttplot.o gccmswu\wxfreechart_lib_ganttrenderer.o gccmswu\wxfreechart_lib_tooltips.o gccmswu\wxfreechart_lib_plot.o gccmswu\wxfreechart_lib_renderer.o gccmswu\wxfreechart_lib_title.o gccmswu\wxfreechart_lib_barrenderer.o gccmswu\wxfreechart_lib_barplot.o gccmswu\wxfreechart_lib_marker.o gccmswu\wxfreechart_lib_chart.o gccmswu\wxfreechart_lib_labelaxis.o gccmswu\wxfreechart_lib_logarithmicnumberaxis.o gccmswu\wxfreechart_lib_compdateaxis.o gccmswu\wxfreechart_lib_juliandateaxis.o gccmswu\wxfreechart_lib_axis.o gccmswu\wxfreechart_lib_numberaxis.o gccmswu\wxfreechart_lib_categoryaxis.o gccmswu\wxfreechart_lib_dateaxis.o gccmswu\wxfreechart_lib_axisplot.o gccmswu\wxfreechart_lib_areadraw.o gccmswu\wxfreechart_lib_bubbleplot.o gccmswu\wxfreechart_lib_xyzdataset.o gccmswu\wxfreechart_lib_xyzrenderer.o gccmswu\wxfreechart_lib_polynom.o gccmswu\wxfreechart_lib_sinefunction.o gccmswu\wxfreechart_lib_timeseriesdataset.o gccmswu\wxfreechart_lib_xyplot.o gccmswu\wxfreechart_lib_xyarearenderer.o gccmswu\wxfreechart_lib_xydynamicdataset.o gccmswu\wxfreechart_lib_vectordataset.o gccmswu\wxfreechart_lib_xyhistorenderer.o gccmswu\wxfreechart_lib_xyrenderer.o gccmswu\wxfreechart_lib_xydataset.o gccmswu\wxfreechart_lib_xysimpledataset.o gccmswu\wxfreechart_lib_xylinerenderer.o gccmswu\wxfreechart_lib_juliantimeseriesdataset.o gccmswu\wxfreechart_lib_ohlcsimpledataset.o gccmswu\wxfreechart_lib_ohlcrenderer.o gccmswu\wxfreechart_lib_ohlcbarrenderer.o gccmswu\wxfreechart_lib_ohlcplot.o gccmswu\wxfreechart_lib_ohlccandlestickrenderer.o gccmswu\wxfreechart_lib_movingaverage.o gccmswu\wxfreechart_lib_ohlcdataset.o gccmswu\wxfreechart_lib_categorydataset.o gccmswu\wxfreechart_lib_categoryrenderer.o gccmswu\wxfreechart_lib_categorysimpledataset.o gccmswu\wxfreechart_lib_symbol.o gccmswu\wxfreechart_lib_dataset.o gccmswu\wxfreechart_lib_chartsplitpanel.o gccmswu\wxfreechart_lib_colorscheme.o gccmswu\wxfreechart_lib_zoompan.o gccmswu\wxfreechart_lib_crosshair.o gccmswu\wxfreechart_lib_chartpanel.o
    ranlib ..\lib\gcc_lib\libwxcode_msw31u_freechart.a
    g++ -o ..\sample\wxFreeChartDemo_lib.exe gccmswu\wxFreeChartDemo_lib_bardemos.o gccmswu\wxFreeChartDemo_lib_bubbledemos.o gccmswu\wxFreeChartDemo_lib_combinedaxisdemos.o gccmswu\wxFreeChartDemo_lib_demo.o gccmswu\wxFreeChartDemo_lib_democollection.o gccmswu\wxFreeChartDemo_lib_ganttdemos.o gccmswu\wxFreeChartDemo_lib_markersdemos.o gccmswu\wxFreeChartDemo_lib_multipleaxisdemos.o gccmswu\wxFreeChartDemo_lib_ohlcdemos.o gccmswu\wxFreeChartDemo_lib_pieplotdemos.o gccmswu\wxFreeChartDemo_lib_timeseriesdemos.o gccmswu\wxFreeChartDemo_lib_titledemos.o gccmswu\wxFreeChartDemo_lib_xydemos.o  -mthreads -LC:\Programmation\wxWidgets-3.1.4\lib\gcc_lib  -L..\lib\gcc_lib -Wl,--subsystem,windows -mwindows    ..\lib\gcc_lib\libwxcode_msw31u_freechart.a -lwxmsw31u_aui -lwxmsw31u_adv -lwxmsw31u_core -lwxbase31u -lwxtiff -lwxjpeg -lwxpng -lwxzlib -lwxregexu -lwxexpat -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lwsock32 -lodbc32

  19. #19
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Février 2006
    Messages : 562
    Points : 859
    Points
    859
    Par défaut
    Bonjour.

    Les messages d'erreurs que tu obtient t'indiquent que le "linkeur" ne trouve pas les méthodes indiquées. Celles-ci sont fournies avec la librairie uxtheme. Regarde de ce coté.

  20. #20
    Membre à l'essai
    Inscrit en
    Mars 2003
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 29
    Points : 24
    Points
    24
    Par défaut
    Salut
    Hélas je crains qu'il n'y ait pas que cette librairie qui manque
    En tout cas, la version shared=1 fonctionne donc pour le moment je reste en version DLL.

Discussions similaires

  1. [WxWidgets] installation code:blocks
    Par maminova77 dans le forum Code::Blocks
    Réponses: 16
    Dernier message: 25/01/2011, 09h15
  2. [WxWidgets] installation code:blocks erreur au make
    Par grabriel dans le forum Code::Blocks
    Réponses: 1
    Dernier message: 17/04/2008, 18h10
  3. Réponses: 3
    Dernier message: 06/04/2007, 15h34
  4. code::blocks et wxWidget 2.8
    Par johnbob_72 dans le forum Code::Blocks
    Réponses: 10
    Dernier message: 27/02/2007, 15h29
  5. Installation Code::Blocks sous Fedora Core4
    Par el-karkeni dans le forum Code::Blocks
    Réponses: 1
    Dernier message: 28/01/2007, 11h11

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