Partage
  • Partager sur Facebook
  • Partager sur Twitter

Les IDE

Sujet résolu
    24 janvier 2023 à 16:51:22

    Bonjour,
    la suite concerne plus les IDE en général qu'un langage particulier.

    Avec nos IDE modernes, lorsque l'on utilise des librairies externes pour lancer/tester un programme, est-on obligé de copier les DLLs dans le dossier où est généré l'executable ?
    N'y a t'il pas moyen d'indiquer à l'IDE: Va chercher les DLLs qui se trouvent dans tel dossier.

    • Partager sur Facebook
    • Partager sur Twitter
      24 janvier 2023 à 17:38:21

      En general si, il suffit d'indiquer dans le LD_LIBRARY_PATH ou dans le projet.
      • Partager sur Facebook
      • Partager sur Twitter
        24 janvier 2023 à 18:16:14

        Heu non, ce n'est pas l'étape de la compilation / link dont je parle.
        Mais l'exécution.
        • Partager sur Facebook
        • Partager sur Twitter
          24 janvier 2023 à 18:43:07

          >Mais l'exécution

          Tu veux dire le débuging, non ?

          Je ne sais pas de quel IDE tu parles, moi, c'est VS only.

          Il y a bien des approches différentes pour faire le taf (ajout des dll dans le projet + configuration des actions de "génération", scripts pré-exécution du debugueur, etc...)

          Mais je trouve très confortable d'avoir toutes les Dll bien rangée dans le répertoire de sortie de la génération.

          Ça permet d’enchaîner la création d'un script d'installation sans oublier une Dll "à la con".

          P.S.; et ça permet de faire des manifestes "bien propres" avec des Dll dédiées pour sortir du Dll Hell.

          -
          Edité par bacelar 24 janvier 2023 à 18:44:40

          • Partager sur Facebook
          • Partager sur Twitter
          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
            24 janvier 2023 à 19:54:53

            J'utilise VS et Eclipse.

            Merci pour les indications sur VS, je vais regarder ça de plus près.

            • Partager sur Facebook
            • Partager sur Twitter
              24 janvier 2023 à 22:00:02

              Bonjour,

              Avec le configurateur de projets/builds CMake (on peut compiler en Debug, Release, RelMinSize, Release with debug info), il y a une fonction d'installation des binaires (exécutables comme dll) dans le répertoire d'installation du projet final. CMake permet notamment de créer des projets pour Visual Studio, Codelite Eclipse, et d'autres IDE.

              Par exemple, on lance dans le terminal la commande suivante à partir du répertoire racine des sources du projet:

              cmake -G "Visual Studio 17 2022" -A x64 -DCMAKE_INSTALL_PREFIX="C:/Program files/Jeu" -B../buildDir -S./


              -S indique le répertoire de sources

              -B indique dans quel répertoire on va générer les binaires

              et -DCMAKE_INSTALL_PREFIX le répertoire d' installation des binaires créés

              Le fichier CMakeLists.txt (seulement un extrait):

              if(UNIX)
              	include(GNUInstallDirs)
              	install( 
              		TARGETS 
              			game 
              			wxLevelEditor 
              			wxSavesEditor 
              			commonFiles 
              			demosLibrary
              			gameCommon 
              			gameSaveAndLoad 
              			genericLib 
              			onePlayerInGame 
              			sdl2_wrapper 
              			spriteMoveLib 
              			wxPrefPath 
              		RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Runtime
              	)
              else()
              	install( 
              		TARGETS 
              			game 
              			wxLevelEditor 
              			wxSavesEditor 
              			commonFiles 
              			demosLibrary
              			gameCommon 
              			gameSaveAndLoad 
              			genericLib 
              			onePlayerInGame 
              			sdl2_wrapper 
              			spriteMoveLib 
              			wxPrefPath
              		RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX} COMPONENT Runtime
              	)
              endif(UNIX)

              Par contre pour les autres Dll à copier je n'ai pas trouvé de solution miracle, mais je pense bien connaître les dépendances des mes programmes et j'ai rarement eu des soucis à cause de Dll foireuses ou de l' absence d'une d'entre elle.

              • Partager sur Facebook
              • Partager sur Twitter

              Mon site web de jeux SDL2 entre autres : https://www.ant01.fr

                24 janvier 2023 à 23:49:57

                gbdivers a écrit:

                En general si, il suffit d'indiquer dans le LD_LIBRARY_PATH ou dans le projet.

                Deedolith a écrit:

                Heu non, ce n'est pas l'étape de la compilation / link dont je parle.
                Mais l'exécution.


                LD_LIBRARY_PATH (Linux) ou DYLD_LIBRARY_PATH (macOS) ou PATH (Windows) sont bien des informations utilisées à l'exécution, pas au link et encore moins à la compilation. Donc le conseil de gbdivers est tout à fait pertinent.

                Sinon CMake ajoute automatiquement par défaut les chemins de toutes les librairies liées au rpath des exécutables produits dans le "build tree", ce qui fait que durant le développement on peut lancer ses exécutables sans aucune manipulation supplémentaire (sauf sur Windows où il n y a pas de notion de rpath).

                • Partager sur Facebook
                • Partager sur Twitter
                  30 janvier 2023 à 0:52:20

                  @SpaceIn:
                  Vu que je travaille sous windows (à ma conaissance, les DLL n'existent pas sous Linux), LD_LIBRARY_PATH (comme tu le soulignes) ne s'applique pas.
                  Et d'après cet article: What is LD_LIBRARY_PATH used for? (linuxhint.com) il n'est pas recommandé d'y toucher.

                  • Partager sur Facebook
                  • Partager sur Twitter
                    30 janvier 2023 à 7:48:24

                    Sous linux, ai souvent utilisé cette variable pour faire tourner des logiciels qui tenaient absolument à utiliser des bibliothèques "exotiques", dans des versions incompatibles avec le reste de l'installation (qu'il faut parfois aller piocher sur des cd d'installation d'autres distributions largement périmées)

                    Technique   : le lancement du logiciel se fait par un script qui positionne cette variable avant de démarrer l'exécutable. 

                    -
                    Edité par michelbillaud 30 janvier 2023 à 7:50:07

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Les IDE

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    • Editeur
                    • Markdown