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

Bibliothèques, systèmes et outils C Discussion :

linker dll et librairie statique


Sujet :

Bibliothèques, systèmes et outils C

  1. #1
    Membre actif Avatar de L4BiN
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2006
    Messages : 432
    Points : 209
    Points
    209
    Par défaut linker dll et librairie statique
    Bonjour,

    on ma fourni des fichiers.c que je sdois utiliser pour crée une dll externe.

    Avec ces fichiers.c font appel à des librairie statique lib.a
    Ces librairies static font appel elle meme à des lib fortran c++ R etc...

    J'ai du faire une commande de fou pur faire le link et creer ma dll
    les commandes du genre...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    gcc -I"C:/INCLUDE" -c fichier.c
     
    gcc -shared fichier.o -lg95 -lstdc++ ...  -LC:/TouteLesLibUtile -o fichier.dll
    J'ai apres un long temps réussi a faire cette dll...
    MAIS je n'arrive pas à l'utiliser via JNA (java native access) où l'erreur
    java.lang.UnsatisfiedLinkError: module spécifié introuvable apparait.

    Ma question est donc de savoir dans un premier temps est ce que c'est possible de linker une dll avec des librairie static et si oui qu'est ce qui pourrait empêcher d'utiliser la dll (genre des décorations c++)?

    Merci d'avance

  2. #2
    Membre actif Avatar de L4BiN
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2006
    Messages : 432
    Points : 209
    Points
    209
    Par défaut
    Je ne sais toujours pas si ca peux marcher,
    mais j'ai utiliser dependency walker et il me manque des dlls
    la dll gpscv.dll et celle qui sont lié avec plusieur dll du genre api-ms-win-security-core-L1-1-0.dll et autres.

    Le probleme de gpscv et que c'est une dll 32 bits que j'ai besoin, et sur mon vista y a que une 64 bits. donc ca marche pas.

    savez vous si il y a une solution ?

  3. #3
    Membre actif Avatar de L4BiN
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2006
    Messages : 432
    Points : 209
    Points
    209
    Par défaut
    Je reformule avec les nouveaux indices que j'ai trouver.

    Je dois donc cree une dll a partir d'un code c.

    Sauf que ce code c utilise des méthodes implémenté par des lib static .a

    J'arrive a construire ma dll, mais quand je tente de l'utiliser via JNA sous java, j'ai l'erreur java.lang.UnsatisfiedLinkError: module spécifié est introuvable.

    J'ai remarque qd commentant les appels de méthodes implémentées dans les lib static, la dll est alors reconnu dans JNA.
    D'ou le fait que je pense qu'il y a un probleme de linkage avec les lib static.
    Voici ma commande de link;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    set LIBR= -L"C:\Program Files (x86)\R\R-2.10.1\bin"       -L"C:\Rtools\MinGW\lib"  -L"C:\Program Files (x86)\R\R-2.10.1/bin"    -L"C:\Program Files (x86)\R\R-2.10.1/bin"  -L"C:\Program Files (x86)\R\R-2.10.1/library/Rcpp/lib"  -L"C:\Program Files (x86)\R\R-2.10.1/library/RInside/lib" -lRcpp  
     
     
    gcc  -shared   -o madll.dll   madll.o         -LC:\Rtools\MinGW\lib\gcc-lib\i686-pc-mingw32\4.0.3 C:/lib/linux/libstatic.a C:/lib/linux/libXerces.a C:\lib\linux\liblapack.a  -L"C:\Rtools\MinGW\lib"  %LIBR%  -lf95   -lstdc++ -lRlapack -lR -lRblas  -lRcpp -lRInside  -lgcc -lgcc_eh

    De plus je n'ai pas remarquer dans le code C que l'on m'a fourni d'appel direct de la lib static.

    Voici un exemple des codes qui sembles poser probleme.

    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
    #ifndef _X_H
    #define _X_H
     
    #include "bb.h"
     
    #if defined(FROM_CPP)
    extern "C" {
    #endif
    ptV CreateA(void);
     
    void InitB(void *data);
     
    ...
     
    void *return_C(void);
     
    #if defined(FROM_CPP)
    }
    #endif
     
    #endif
    Quelqu'un serait le probleme ?

    Merci d'avance.

  4. #4
    Membre actif Avatar de L4BiN
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2006
    Messages : 432
    Points : 209
    Points
    209
    Par défaut
    a priori, un probleme de compatibilité. Il vaut mieux tout construire sur le meme pc.

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

Discussions similaires

  1. Passage de librairies statiques en DLL
    Par mister3957 dans le forum C++
    Réponses: 9
    Dernier message: 11/05/2009, 13h52
  2. Réponses: 20
    Dernier message: 14/06/2008, 12h05
  3. Réponses: 1
    Dernier message: 20/06/2007, 12h34
  4. Réponses: 2
    Dernier message: 19/08/2005, 16h02
  5. librairie statique/dynamique
    Par trop_wizz dans le forum MFC
    Réponses: 4
    Dernier message: 11/04/2005, 10h04

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