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

Autres éditeurs Discussion :

Pb avec g++ sous cygwin


Sujet :

Autres éditeurs

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Pb avec g++ sous cygwin
    Bonjour à tous,

    Je suis habituée à utiliser Linux mais je dois faire des développements sous
    windows. J'ai donc installé cygwin sur ma machine (macintel disposant de windows). J'utilise g++ version 3.4.4.

    J'ai créé des librairies dynamiques (type liba.dll) en utilisant l'option -shared
    à l'édition des liens (g++ comme éditeur de liens).

    J'ai ensuite compilé mon programme (toujours avec g++) et utilisé ces librairies à l'édition des liens.
    L'exécutable est généré sans problème : j'obtiens un fichier de type "MS-DOS executable PE for MS Windows". J'ai ensuite renseigné la variable LD_LIBRARY_PATH pour indiquer le chemin de mes librairies dynamiques
    (comme j'ai l'habitude de le faire sous Linux).

    Le programme marche parfaitement sous Linux. Au lancement, plusieurs messages indiquent le début de programme et le calcul prend plusieurs heures.

    Sous Windows avec cygwin, le lancement de l'exécutable me rend immédiatement la main et rien ne se passe. Je suppose qu'il s'agit d'un pb associé à mes librairies dynamiques (DLL). Cela m'étonne cependant de ne recevoir aucun message d'erreur comme ceux affichés sous Linux lorsqu'une librairie dynamique (type liba.so) n'est pas chargée : "error while loading shared libraries ...".

    PS : j'ai fait des tests avec des programmes plus simples n'utilisant
    pas de librairies et je n'ai aucun pb : les sorties écran s'affichent toujours normalement etc ...

    Quelqu'un pourrait-il m'éclairer svp ?

    Merci d'avance !

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Supplément d'information :

    il s'agit bien d'un pb du aux libs dynamiques car lorsque l'exécutable est placé
    ds le répertoire ou celles-ci se trouvent, cela marche.

    La question est donc de savoir quel est l'équivalent de la variable
    à renseigner (LD_LIBRARY_PATH sous Linux) ou autre pour indiquer au programme l'endroit de ces librairies lors de l'exécution sous Windows avec cygwin ...

  3. #3
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Salut,

    Sous windows, la recherche de dll se fait:
    • dans le dossier dans lequel se trouve l'exécutable lancé
    • dans le dossier c:/windows/system32 (si windows installé sur c )
    • dans les dossiers déclarés dans la variable PATH

    Si la dll se trouve dans le dossier dans lequel se trouve l'exécutable lancé, elle est inaccessible aux autres applications qui pourraient vouloir y faire appel... Mais, l'avantage, c'est qu'il sera facile de mettre le tout à jour

    Si la dll se trouve dans un des dossiers déclarés dans la variable PATH, ou si elle se trouve dans le dossier c:/windows/system32, elle sera accessible à toute application qui pourrait devoir y faire appel, la mise à jour étant plus facile à mettre en oeuvre dans le cas du dossier déclaré dans la variable PATH (mais nécessite peut etre de s'assurer que le dossier soit bien déclaré dedans )

    Tu n'as donc que l'embaras du choix quant à l'endroit où placer ta dll... mais un usage fréquemment utilisé est de, tout simplement, la placer dans le dossier dans lequel se trouve l'exécutable
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Merci, cela règle mon pb :o).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/09/2011, 14h01
  2. Les conversions de chemins Win/Linux (avec Find sous Cygwin)
    Par bros_70 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 01/02/2010, 16h43
  3. Problème avec grep sous Cygwin
    Par tnarol dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 09/07/2008, 17h12
  4. Problème avec un fichier .sh sous cygwin
    Par Soria17 dans le forum Linux
    Réponses: 2
    Dernier message: 13/12/2006, 00h59
  5. Linker avec libboost_serialization sous Cygwin
    Par mi6fred dans le forum Linux
    Réponses: 5
    Dernier message: 13/06/2006, 23h13

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