Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1812 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [C] linkage pour librairie linux

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] linkage pour librairie linux

n°1033483
loloA5
Posté le 03-04-2005 à 11:22:23  profilanswer
 

Bonjour,
Je suis en train de dévelloper une librairie c pour linux (libmalib.so). Il  agit d un driver de camera firewire sous linux. Je souhaite utilisé des fonctions déjà existantes dans une application coriander. Lorsque j'ai installé cette appli (fonctionne parfaitement), au niveau des sources, il est apparu tous les fichiers .o que je souhaite utiliser.
 
j' ai récupéré tous les fichiers c, h et o de coriander pour les mettre dans mon repertoire de travail.
Donc je me dit qu'il est possible de créer ce driver en appelant dans mon fichier c, tous les fichiers .h de coriander.
Chose faite, compilation nickel mais a l execution, le premier appel fonction coriander lance une erreur du type fonction non reconnue.
Je me suis dit en incluant les points o coriander a la compile il ferait le lien, donc compliation ok, mais a l execution, après divers appels a des fonctions de la librairie deja installer libdc1394 appelés par des fonctions de coriander, je recois une erreur de type fonction non reconnue (pourtant existante dans libdc).
 
Dois je repasser par la recompliation des fichiers utiles de coriander ou je peux faire ça comme ça?
 
Je suis un peu novice en création de librairie et linkage, si quelqu un a des pistes a me donner cela serait sympa
 
Merci par avance


Message édité par loloA5 le 03-04-2005 à 11:24:01
mood
Publicité
Posté le 03-04-2005 à 11:22:23  profilanswer
 

n°1033504
Sve@r
Posté le 03-04-2005 à 11:54:47  profilanswer
 

loloA5 a écrit :

Bonjour,
Je suis en train de dévelloper une librairie c pour linux (libmalib.so). Il  agit d un driver de camera firewire sous linux. Je souhaite utilisé des fonctions déjà existantes dans une application coriander. Lorsque j'ai installé cette appli (fonctionne parfaitement), au niveau des sources, il est apparu tous les fichiers .o que je souhaite utiliser.
 
j' ai récupéré tous les fichiers c, h et o de coriander pour les mettre dans mon repertoire de travail.
Donc je me dit qu'il est possible de créer ce driver en appelant dans mon fichier c, tous les fichiers .h de coriander.
Chose faite, compilation nickel mais a l execution, le premier appel fonction coriander lance une erreur du type fonction non reconnue.
Je me suis dit en incluant les points o coriander a la compile il ferait le lien, donc compliation ok, mais a l execution, après divers appels a des fonctions de la librairie deja installer libdc1394 appelés par des fonctions de coriander, je recois une erreur de type fonction non reconnue (pourtant existante dans libdc).
 
Dois je repasser par la recompliation des fichiers utiles de coriander ou je peux faire ça comme ça?
 
Je suis un peu novice en création de librairie et linkage, si quelqu un a des pistes a me donner cela serait sympa
 
Merci par avance


 
Est-ce que cette application "coriander" fait appel à une librairie particulière ?
 
Télécharge le document http://fr.lang.free.fr/cours/Gener [...] t_v1.0.doc il explique en p. 9 comment et pourquoi créer une librairie


Message édité par Sve@r le 03-04-2005 à 11:57:15
n°1033587
loloA5
Posté le 03-04-2005 à 15:37:46  profilanswer
 

oui il appelle la libraire libdc1394 libraw1394, que j ai installé.
donc selon toi je peux faire include des points donc?
Merci pour la doc


Message édité par loloA5 le 03-04-2005 à 15:43:39
n°1033813
Sve@r
Posté le 03-04-2005 à 20:42:49  profilanswer
 

A mon avis, comme ça marche à la compilation mais pas à l'exécution c'est que ton pgm fait appel à une librairie dynamique (chargée lors de son appel et non lors de la compilation)
Vérifie si ta variable "LD_LIBRARY_PATH" contient bien le chemin permettant d'accéder aux librairies de "coriander"

n°1047525
western
AJMM
Posté le 14-04-2005 à 15:46:04  profilanswer
 

loloA5 a écrit :


Bonjour,
Je suis en train de dévelloper une librairie c pour linux (libmalib.so). Il  agit d un driver de camera firewire sous linux.  


Attention à l'abus de language: un driver et une library ne sont pas la même chose


Sve@r a écrit :

A mon avis, comme ça marche à la compilation mais pas à l'exécution c'est que ton pgm fait appel à une librairie dynamique (chargée lors de son appel et non lors de la compilation)
Vérifie si ta variable "LD_LIBRARY_PATH" contient bien le chemin permettant d'accéder aux librairies de "coriander"


il faut utiliser la commande ldd qui permet de connaitre les libraries utilisées par un executable


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [C] linkage pour librairie linux

 

Sujets relatifs
Communication entre 2 applications sous Linux ?ou installer librairie GD
librairie graphique sous freebsdPACMAN VAX et Librairie SMG
Borland BCC5.5 inclure une librairie à un projet[Développement FS] Des docs sur la librairie FSCopilot ?
[linux] Définir variables d'environnement dans Makefileinclure une librairie en C
PostgreSQL/Linux : probleme de création de table [résolu]Ouvrir un fichier texte avec librairie wxWidgets...
Plus de sujets relatifs à : [C] linkage pour librairie linux


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR