accès aux groupes de discussion, consultation et publication d'articles, recherche de "newsgroups"...
membres, identifiez-vous
é-mail Mot de passe
nouveau ? mot de passe oublié ?
Chargement... Chargement en cours...

Groupes français belges canadiens suisses internationaux Nétiquette
Échangez opinions et commentaires dans les forums de discussion.

Re: undefined symbol in foreign library

 [  Nouvelle Discussion Nouvelle discussion  |  Répondre au groupe Répondre au groupe  |  fr.comp.lang.lisp ] 

Retour : Accueil du site fr comp lang lisp   charte stats de ce groupe


  Sujet:   Re: undefined symbol in foreign library  
 De: card.lemo...@wanadoo.fr (card.lemoine)
 Groupes: fr.comp.lang.lisp
 Organisation: A Customer of Tele2
 Date: 24. Apr 2008, 01:25:52
 References: 1 2 3 4
Pascal Bourguignon a écrit :
> "card.lemoine" <st_georges@tele.fr> writes:
> 
>> Pascal Bourguignon a écrit :
>>
>>> Est-on sur que la libgsl est déjà chargée dans clisp?
>>>
>> Pardon je crois que j'ai compris votre question de travers.
>> Qu'entendez-vous par "déjà chargée" ? 
> 
> 
> Les dépendances d'une bibliothèque ne sont pas chargées
> automatiquement.  Il faut les charger explicitement.
> 
Même en faisant coller les codes de votre démo plus près de ma situation 
(ci-dessous), cela se déroule comme comme vous le dites. Et pendant près 
d'un an cela a fonctionné je ne sais comment. Je suis éloigné de mes 
bases toute cette semaine et le début de l'autre. Je vous remercie 
beaucoup et vais essayer de comprendre (ou de m'habituer) à ces 
comportements.
> 



/* mid.c */
#include <stdio.h>

extern int base_fun(int i);
extern int mid_fun (int i) {
   int j=base_fun(i);
   printf("mid_fun exécute %d -> %d\n",
	 j, i);
   return j>>=1;
}

/* base.c */
#include <stdio.h>

extern int base_fun (int i) {
   int j;
   printf("base_fun exécute %d -> %d\n", i, j=i<<1);
   return j;
}

/* test-c.c */
#include <stdio.h>

extern int mid_fun(int i);
int main(void) {
   int i=2;
   printf("appel de mid-fun(%d) rend %d\n",i,mid_fun(i));
   return (0);
}

;;; test.lisp

;;(format t ";; -- Loading only libmid.so~%")
;;(handler-case (FFI:DEF-CALL-OUT mid-fun (:NAME "mid_fun")
;;		(:ARGUMENTS (SIZE FFI:INT :IN))
;;		(:RETURN-TYPE FFI:INT)
;;		(:LANGUAGE :STDC)
;;		(:library "/home/alain/Lisp/pjb/libmid.so"))
;; (error (err) (princ err)))

;; (format t ";; -- Loading libbase.so first.~%")
;; (FFI:DEF-CALL-OUT base-fun (:NAME "base_fun")
;; (:ARGUMENTS (SIZE FFI:INT :IN))
;; (:RETURN-TYPE FFI:INT)
;; (:LANGUAGE :STDC)
;; (:library "/home/alain/Lisp/pjb/libbase.so"))

  (format t ";; -- Then loading libmid.so~%")
  (FFI:DEF-CALL-OUT mid-fun (:NAME "mid_fun")
  (:ARGUMENTS (SIZE FFI:INT :IN))
  (:RETURN-TYPE FFI:INT)
  (:LANGUAGE :STDC)
  (:library "/home/alain/Lisp/pjb/libmid.so"))

  (format t ";; -- Now, calling external functions:~%")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (base-fun 42)
  (mid-fun 2)

  (format t ";; -- Unloading libraries.~%")
  (FFI:CLOSE-FOREIGN-LIBRARY "/home/alain/Lisp/pjb/libmid.so")
;; (FFI:CLOSE-FOREIGN-LIBRARY "/home/alain/Lisp/pjb/libbase.so")


DateSujet  Auteur
21.04.
* undefined symbol in
card.lemoine@aliceadsl.fr
22.04.
+* Re: undefined symbol in
Pascal Bourguignon
22.04.
|+- Re: undefined symbol in
card.lemoine@aliceadsl.fr
22.04.
|`* Re: undefined symbol in
card.lemoine
22.04.
| +- Re: undefined symbol in
card.lemoine
23.04.
| `* Re: undefined symbol in
Pascal Bourguignon
24.04.
|  `*   Re: undefined symbol in
card.lemoine
24.04.
|   `* Re: undefined symbol in
Pascal Bourguignon
24.04.
|    `* Re: undefined symbol in
card.lemoine
24.04.
|     `- Re: undefined symbol in
Pascal Bourguignon
26.04.
`* Re: undefined symbol in
Pascal Bourguignon
28.04.
 `- Re: undefined symbol in
card.lemoine
Groups Explorer contact votre avis comment ça marche? rechercher un groupe suggérer un groupe abuse accueil du site   Imprimer cette page   Envoyer cette page à un(e) ami(e)
Free counter and web stats