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

C++ Discussion :

probleme au linkage


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 113
    Par défaut probleme au linkage
    Désolé de posé une question qui va sembler bato pour beaucoup, mais je cherche depuis quelques heure et j'arrive pas à trouvé de solution.

    Voila, pour un projet interne, j'ai acheter une carte d'acquisition programmable en C et C++.

    avec cette carte est founis une bibliotheque PCDAQ.LIB ainsi qu'un exemple de code sous forme de projet VisualC++.

    Sous visualC++, j'arrive a compiler le programme et le lancer.
    Mais je voudrais essayé de compiler avec g++.

    je fais donc
    g++ test_acq.cpp
    il me dit qu'il y a des erreurs de linkage.
    donc:
    g++ test_acq.cpp -lPCDAQ
    et il m'affirme qu'il ne trouve pas PCDAQ.LIB qui est pourtant dans le même repertoire que test_acq.cpp et les fichier.h

    Comment inclure cette #@% de librairie?

    Merci

    et visiblement il

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 26
    Par défaut
    Tu dois préciser le chemin pour trouver tes librairies normalement
    essaie ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    g++ test_acq.cpp -Lchemin_complet_du_répertoire -lPCDAQ

  3. #3
    Membre émérite
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Février 2004
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Février 2004
    Messages : 644
    Par défaut
    -l permet de charger une librairie ayant comme nom "toto" et comme nom de fichier libtoto.so
    -L permet de spécifier un répertoire où pourrait se situer l'évenutelle librairie.

    les *.lib sont propre à windows, essaie de linker simplement ton projet avec le *.lib de la manière suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    gcc main.c fichier.lib -o fichier.exe

    Par contre voici quelques questions qu'il faudra se poser.
    1) Est-ce que la librairie utilise des interfaces exploitant les appels stdcall ?
    2) Est-ce que cette librairie utilise des types de bases (char * pour les strings, etc... )
    3) Est-ce que les symboles exportés sont préfixés par '_' ou non

  4. #4
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    libtoto.a tu veux dire

  5. #5
    Membre émérite
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Février 2004
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Février 2004
    Messages : 644
    Par défaut
    tout dépend si tu utilises une statique ou une dynamique.

    dynamique .so
    statique .a

    mais je pense que tu le sais très bien

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 113
    Par défaut
    la commande

    g++ test_acq.cpp PCDAQ.LIB -o test.exe

    Fonctionne et ça compile. L'ennui étant qu'à l'execution, je me retrouve avec un
    Segmentation fault (core dumped). Compilé avec visualC++, le programe fonctionne sans probleme.

    D'aprés un collegue il est possible que PCDAQ.LIB ne soit utilisable que depuis visualC++... Connaitriez vous un moyen de "transformer" la librairie pour l'utilisé à partir de gcc?

    Merci

Discussions similaires

  1. Problème de linkage SDL avec Builder 6 pro
    Par Invité dans le forum SDL
    Réponses: 5
    Dernier message: 28/04/2006, 02h44
  2. QT+DEV-CPP+LIBPQ : probleme de linkage
    Par Pe04 dans le forum Dev-C++
    Réponses: 2
    Dernier message: 31/03/2006, 11h31
  3. [MFC]+[dll] probleme au linkage
    Par BainE dans le forum MFC
    Réponses: 3
    Dernier message: 22/06/2005, 12h04
  4. [MFC ]Probleme de linkage d'une dll
    Par Lysis dans le forum MFC
    Réponses: 9
    Dernier message: 22/01/2004, 14h51
  5. Probleme de linkage avec DirectDraw7 sous BC++ 5.02
    Par bobtorn dans le forum DirectX
    Réponses: 3
    Dernier message: 07/10/2003, 20h14

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