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 Discussion :

Problème bibliothèque R.h


Sujet :

Bibliothèques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 16
    Par défaut Problème bibliothèque R.h
    Bonjour,

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #include <Rmath.h>
    #include <stdio.h>
     
    int main (void) {
        printf ("Test ");
        printf ("%d\n",R_FINITE(2));
    }
    Voici l'erreur donnée par : gcc -I/usr/share/R/include/ test.c

    undefined reference to 'R_FINITE'

    Sachant que R_FINITE est déclaré dans Rmath, je ne comprends pas pourquoi j'ai cette erreur.

  2. #2
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    Ce fameux fichier "RMath.h"... je doutes qu'il fasse partie de la GLib classique.

    De plus, les erreur de type "undefined reference to ..." sont généralement des erreurs lancées lors de l'édition de lien, parce que le "linker" ne trouve pas l'adresse à laquelle se rapporte la fonction indiquée.

    L'idée est donc, si cela fait appel à une bibliothèque externe, de tout simplement indiquer au compilateur qu'il doit utiliser la dite bibliothèque.

    Cela se fait en deux temps:
    • Signaler dans quel dossier il doit aller chercher apres cette bibliothèque avec un "flag" -L/where/to/find/thelibdir
    • Signaler qu'il doit effectuer l'édition des liens en utilisant la bibliothèque avec un 'flag" -lthelibname


    Pour essayer d'être plus précis, si l'ensemble de la bibliothèque est installé dans /usr/share/R, tu devrais avoir
    • un dossier include contenant les en-tête (et que tu as signalé qui devait être utilisé)
    • un dossier lib qui devrait sans doute contenir un libR.a libR.so ou autre fichier du même genre. "thelibname" corresond en fait au nom du fichier, sans le "lib" et sans l'extension


    La commande finale pour arriver à compiler ton projet doit donc ressembler à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    gcc -I/usr/share/R/include/ -L/usr/char/R/lib -lR test.c
         ^                                         ^
    i majuscule                                L minuscule
    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

  3. #3
    Membre averti
    Inscrit en
    Août 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 16
    Par défaut
    Merci pour la réponse.

    La librairie utilisée fait partie du programme "R".

    J'ai bien trouvé un fichier libR.so dans /usr/lib/R/lib/

    J'ai compilé avec cette ligne de commande :

    gcc -I/usr/share/R/include/ -L/usr/lib/R/lib/ -lR test.c

    Mais ca ne marche pas (toujours la même erreur).


  4. #4
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Je me pose la question de savoir s'il ne faudrait pas, en plus, rajouter le chemin vers la bibliothèque (/usr/lib/R/lib) dans le LD_LIBRARY_PATH...

    Comme cela fait quelque temps que je n'ai plus mis les mains sous linux, je ne saurais malheureusement pas en dire énormément plus
    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

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

Discussions similaires

  1. Problème bibliothèque Magic Wild 5
    Par cup of tea dans le forum Débuter
    Réponses: 0
    Dernier message: 30/01/2012, 12h33
  2. problème bibliothèque SQL
    Par zobairfr dans le forum Administration
    Réponses: 5
    Dernier message: 29/04/2009, 22h01
  3. [A-07] Problème bibliothèque de References
    Par ARKIN38 dans le forum VBA Access
    Réponses: 4
    Dernier message: 28/02/2008, 14h30
  4. Problème bibliothèque d'éléments java
    Par nasriOM dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 15/10/2007, 12h07
  5. [API javax.comm] Problème bibliothèque
    Par goddet dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 20/03/2007, 13h40

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