n'ayant pas eu de réponse à mon post précédent, je suppose qu'il n'était pas
très clair. Je m'en excuse, et je reformule autrement ma question. Donc, à
quoi cela sert-il d'écrire des classes templates dans une DLL si elles ne
peuvent être exportées ?
Pour aller plus loin, comme de nombreuses applications sont décomposées en
DLLs, le template est-il utilisé ?
Dans mon cas, j'ai écrit une DLL de fonctions mathématiques à base de
templates, mais je me retrouve coincé, car je ne peux l'utiliser dans mes
applications. Faut donc t-il tout écrire sans dll, dans un seul bloc de
programme ?
J'aimerais avoir votre point de vue sur ce point.
Merci à tous.
Arnaud Meurgues wrote in message news:<41a30ccb$0$6702$...
C'est fort possible. Je ne me suis jamais vraiment penché dessus, j'avoue. Mais du coup, je me demande à quoi sert le .lib...
Essentiellement à résoudre les offsets des symboles de la DLL au moment de l'édition de liens, et donc de diminuer le temps de démarrage du programme (à l'execution, il n'y a plus qu'un offset à appliquer pour tenir compte de l'addresse de chargement de la DLL).
J'ai un pb. Si j'ai bien compris on ne peut pas changer la DLL apres avoir lie? Si oui qu'est-ce qui empeche les offsets d'avoir change?
"Changer" la DLL, c'est-à-dire? Si tu veux dire qu'on a lié l'exe avec une librairie d'import (.lib) donnée, alors effectivement l'exe ne peut fonctionner qu'avec la version correpondante de la DLL. Si tu veux pouvoir modifier ou créer une DLL après avoir compilé et lié l'exe (en clair, faire un plugin), il faut que la DLL soit chargée dynamiquement avec LoadLibrary et utilisée avec GetProcAddress, càd faire réellement du binding tardif (au run-time). Dans ce cas, on n'utilise pas la librairie d'import, mais on pert beaucoup en simplicité d'utilisation dans le code de l'exe (particulièrement si la DLL est en C++, à cause du mangling des symboles). Dans ces cas, on s'arrange généralement pour que la DLL n'exporte qu'une méthode "Interface* GetPluginObject()" avec un mangling C, qui renvoie un pointeur vers un objet implémentant Interface (interface qui est connue aussi bien par l'exe que par la DLL). L'exe n'a plus ensuite qu'à manipuler de manière polymorphique l'objet renvoyé.
Arnaud Meurgues <arnaud@meurgues.non.fr.invalid> wrote in message
news:<41a30ccb$0$6702$626a14ce@news.free.fr>...
C'est fort possible. Je ne me suis jamais vraiment penché dessus,
j'avoue. Mais du coup, je me demande à quoi sert le .lib...
Essentiellement à résoudre les offsets des symboles de la DLL au
moment de l'édition de liens, et donc de diminuer le temps de
démarrage du programme (à l'execution, il n'y a plus qu'un offset à
appliquer pour tenir compte de l'addresse de chargement de la DLL).
J'ai un pb. Si j'ai bien compris on ne peut pas changer la DLL apres
avoir lie? Si oui qu'est-ce qui empeche les offsets d'avoir change?
"Changer" la DLL, c'est-à-dire? Si tu veux dire qu'on a lié l'exe avec une
librairie d'import (.lib) donnée, alors effectivement l'exe ne peut
fonctionner qu'avec la version correpondante de la DLL.
Si tu veux pouvoir modifier ou créer une DLL après avoir compilé et lié
l'exe (en clair, faire un plugin), il faut que la DLL soit chargée
dynamiquement avec LoadLibrary et utilisée avec GetProcAddress, càd faire
réellement du binding tardif (au run-time). Dans ce cas, on n'utilise pas la
librairie d'import, mais on pert beaucoup en simplicité d'utilisation dans
le code de l'exe (particulièrement si la DLL est en C++, à cause du mangling
des symboles). Dans ces cas, on s'arrange généralement pour que la DLL
n'exporte qu'une méthode "Interface* GetPluginObject()" avec un mangling C,
qui renvoie un pointeur vers un objet implémentant Interface (interface qui
est connue aussi bien par l'exe que par la DLL). L'exe n'a plus ensuite qu'à
manipuler de manière polymorphique l'objet renvoyé.
Arnaud Meurgues wrote in message news:<41a30ccb$0$6702$...
C'est fort possible. Je ne me suis jamais vraiment penché dessus, j'avoue. Mais du coup, je me demande à quoi sert le .lib...
Essentiellement à résoudre les offsets des symboles de la DLL au moment de l'édition de liens, et donc de diminuer le temps de démarrage du programme (à l'execution, il n'y a plus qu'un offset à appliquer pour tenir compte de l'addresse de chargement de la DLL).
J'ai un pb. Si j'ai bien compris on ne peut pas changer la DLL apres avoir lie? Si oui qu'est-ce qui empeche les offsets d'avoir change?
"Changer" la DLL, c'est-à-dire? Si tu veux dire qu'on a lié l'exe avec une librairie d'import (.lib) donnée, alors effectivement l'exe ne peut fonctionner qu'avec la version correpondante de la DLL. Si tu veux pouvoir modifier ou créer une DLL après avoir compilé et lié l'exe (en clair, faire un plugin), il faut que la DLL soit chargée dynamiquement avec LoadLibrary et utilisée avec GetProcAddress, càd faire réellement du binding tardif (au run-time). Dans ce cas, on n'utilise pas la librairie d'import, mais on pert beaucoup en simplicité d'utilisation dans le code de l'exe (particulièrement si la DLL est en C++, à cause du mangling des symboles). Dans ces cas, on s'arrange généralement pour que la DLL n'exporte qu'une méthode "Interface* GetPluginObject()" avec un mangling C, qui renvoie un pointeur vers un objet implémentant Interface (interface qui est connue aussi bien par l'exe que par la DLL). L'exe n'a plus ensuite qu'à manipuler de manière polymorphique l'objet renvoyé.
Arnaud
Fabien LE LEZ
On Wed, 24 Nov 2004 23:52:37 +0100, "Arnaud Debaene" :
Si tu veux pouvoir modifier ou créer une DLL après avoir compilé et lié l'exe (en clair, faire un plugin), il faut que la DLL soit chargée dynamiquement avec LoadLibrary
Pas forcément. Avec un .def au lieu d'un .lib (qui, en gros, contient juste la liste des noms de fonctions exportées), on peut tout à fait accepter des versions plus récentes d'une DLL. D'ailleurs, une application créée sous Windows NT 4 fonctionne sous Windows 2000, et pourtant les DLL du système sont différentes.
-- ;-)
On Wed, 24 Nov 2004 23:52:37 +0100, "Arnaud Debaene"
<adebaene@club-internet.fr>:
Si tu veux pouvoir modifier ou créer une DLL après avoir compilé et lié
l'exe (en clair, faire un plugin), il faut que la DLL soit chargée
dynamiquement avec LoadLibrary
Pas forcément. Avec un .def au lieu d'un .lib (qui, en gros, contient
juste la liste des noms de fonctions exportées), on peut tout à fait
accepter des versions plus récentes d'une DLL.
D'ailleurs, une application créée sous Windows NT 4 fonctionne sous
Windows 2000, et pourtant les DLL du système sont différentes.
On Wed, 24 Nov 2004 23:52:37 +0100, "Arnaud Debaene" :
Si tu veux pouvoir modifier ou créer une DLL après avoir compilé et lié l'exe (en clair, faire un plugin), il faut que la DLL soit chargée dynamiquement avec LoadLibrary
Pas forcément. Avec un .def au lieu d'un .lib (qui, en gros, contient juste la liste des noms de fonctions exportées), on peut tout à fait accepter des versions plus récentes d'une DLL. D'ailleurs, une application créée sous Windows NT 4 fonctionne sous Windows 2000, et pourtant les DLL du système sont différentes.
-- ;-)
kanze
Matthieu Moy wrote in message news:...
writes:
Quand tu livres une bibliothèque (même sans templates), tu ne livres pas qu'un fichier bibliothèque -- tu livres aussi des en-têtes (.h, .hpp, .hh...) et (j'espère) de la doc (.html, .pdf, .info, .dvi, .doc... le choix est énorme).
Quand tu livres une bibliothèque à un développeur.
Quand tu la livre à l'utilisateur qui n'a besoin que du "runtime", le fichier bibliothèque est suffisant.
Une bibliothèque, c'est quelque chose qui sert dans le développement des logiciels. Tu ne le livres donc pas à l'utilisateur. Ce que tu livres à l'utilisateur, c'est soit un exécutable, soit un plug-in.
-- James Kanze GABI Software http://www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Matthieu Moy <MatthieuNOSPAM.Moy@imag.fr.invalid> wrote in message
news:<vpqzn17lklz.fsf@ecrins.imag.fr>...
kanze@gabi-soft.fr writes:
Quand tu livres une bibliothèque (même sans templates), tu ne livres
pas qu'un fichier bibliothèque -- tu livres aussi des en-têtes (.h,
.hpp, .hh...) et (j'espère) de la doc (.html, .pdf, .info, .dvi,
.doc... le choix est énorme).
Quand tu livres une bibliothèque à un développeur.
Quand tu la livre à l'utilisateur qui n'a besoin que du "runtime", le
fichier bibliothèque est suffisant.
Une bibliothèque, c'est quelque chose qui sert dans le développement des
logiciels. Tu ne le livres donc pas à l'utilisateur. Ce que tu livres à
l'utilisateur, c'est soit un exécutable, soit un plug-in.
--
James Kanze GABI Software http://www.gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Quand tu livres une bibliothèque (même sans templates), tu ne livres pas qu'un fichier bibliothèque -- tu livres aussi des en-têtes (.h, .hpp, .hh...) et (j'espère) de la doc (.html, .pdf, .info, .dvi, .doc... le choix est énorme).
Quand tu livres une bibliothèque à un développeur.
Quand tu la livre à l'utilisateur qui n'a besoin que du "runtime", le fichier bibliothèque est suffisant.
Une bibliothèque, c'est quelque chose qui sert dans le développement des logiciels. Tu ne le livres donc pas à l'utilisateur. Ce que tu livres à l'utilisateur, c'est soit un exécutable, soit un plug-in.
-- James Kanze GABI Software http://www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Jean-Marc Bourguet
Fabien LE LEZ writes:
On Wed, 24 Nov 2004 23:52:37 +0100, "Arnaud Debaene" :
Si tu veux pouvoir modifier ou créer une DLL après avoir compilé et lié l'exe (en clair, faire un plugin), il faut que la DLL soit chargée dynamiquement avec LoadLibrary
Pas forcément. Avec un .def au lieu d'un .lib (qui, en gros, contient juste la liste des noms de fonctions exportées), on peut tout à fait accepter des versions plus récentes d'une DLL.
Merci.
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Fabien LE LEZ <gramster@gramster.com> writes:
On Wed, 24 Nov 2004 23:52:37 +0100, "Arnaud Debaene"
<adebaene@club-internet.fr>:
Si tu veux pouvoir modifier ou créer une DLL après avoir compilé et lié
l'exe (en clair, faire un plugin), il faut que la DLL soit chargée
dynamiquement avec LoadLibrary
Pas forcément. Avec un .def au lieu d'un .lib (qui, en gros, contient
juste la liste des noms de fonctions exportées), on peut tout à fait
accepter des versions plus récentes d'une DLL.
Merci.
A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
On Wed, 24 Nov 2004 23:52:37 +0100, "Arnaud Debaene" :
Si tu veux pouvoir modifier ou créer une DLL après avoir compilé et lié l'exe (en clair, faire un plugin), il faut que la DLL soit chargée dynamiquement avec LoadLibrary
Pas forcément. Avec un .def au lieu d'un .lib (qui, en gros, contient juste la liste des noms de fonctions exportées), on peut tout à fait accepter des versions plus récentes d'une DLL.
Merci.
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Laurent Deniau
wrote:
Matthieu Moy wrote in message news:...
writes:
Quand tu livres une bibliothèque (même sans templates), tu ne livres pas qu'un fichier bibliothèque -- tu livres aussi des en-têtes (.h, .hpp, .hh...) et (j'espère) de la doc (.html, .pdf, .info, .dvi, .doc... le choix est énorme).
Quand tu livres une bibliothèque à un développeur.
Quand tu la livre à l'utilisateur qui n'a besoin que du "runtime", le fichier bibliothèque est suffisant.
Une bibliothèque, c'est quelque chose qui sert dans le développement des logiciels. Tu ne le livres donc pas à l'utilisateur. Ce que tu livres à l'utilisateur, c'est soit un exécutable, soit un plug-in.
A l'utilisateur d'une application, oui. A l'utilisateur d'une bibliotheque, tu livres une bibliotheque+.h+doc
Appeler l'utilisateur d'une bibliotheque un developpeur est seulement une reformulation (approriee?). Il n'est reste pas moins un utilisateur qui devra se conformer au manuel d'utilisation s'il veut que ca marche. Tout comme pour une application.
a+, ld.
kanze@gabi-soft.fr wrote:
Matthieu Moy <MatthieuNOSPAM.Moy@imag.fr.invalid> wrote in message
news:<vpqzn17lklz.fsf@ecrins.imag.fr>...
kanze@gabi-soft.fr writes:
Quand tu livres une bibliothèque (même sans templates), tu ne livres
pas qu'un fichier bibliothèque -- tu livres aussi des en-têtes (.h,
.hpp, .hh...) et (j'espère) de la doc (.html, .pdf, .info, .dvi,
.doc... le choix est énorme).
Quand tu livres une bibliothèque à un développeur.
Quand tu la livre à l'utilisateur qui n'a besoin que du "runtime", le
fichier bibliothèque est suffisant.
Une bibliothèque, c'est quelque chose qui sert dans le développement des
logiciels. Tu ne le livres donc pas à l'utilisateur. Ce que tu livres à
l'utilisateur, c'est soit un exécutable, soit un plug-in.
A l'utilisateur d'une application, oui.
A l'utilisateur d'une bibliotheque, tu livres une bibliotheque+.h+doc
Appeler l'utilisateur d'une bibliotheque un developpeur est seulement
une reformulation (approriee?). Il n'est reste pas moins un utilisateur
qui devra se conformer au manuel d'utilisation s'il veut que ca marche.
Tout comme pour une application.
Quand tu livres une bibliothèque (même sans templates), tu ne livres pas qu'un fichier bibliothèque -- tu livres aussi des en-têtes (.h, .hpp, .hh...) et (j'espère) de la doc (.html, .pdf, .info, .dvi, .doc... le choix est énorme).
Quand tu livres une bibliothèque à un développeur.
Quand tu la livre à l'utilisateur qui n'a besoin que du "runtime", le fichier bibliothèque est suffisant.
Une bibliothèque, c'est quelque chose qui sert dans le développement des logiciels. Tu ne le livres donc pas à l'utilisateur. Ce que tu livres à l'utilisateur, c'est soit un exécutable, soit un plug-in.
A l'utilisateur d'une application, oui. A l'utilisateur d'une bibliotheque, tu livres une bibliotheque+.h+doc
Appeler l'utilisateur d'une bibliotheque un developpeur est seulement une reformulation (approriee?). Il n'est reste pas moins un utilisateur qui devra se conformer au manuel d'utilisation s'il veut que ca marche. Tout comme pour une application.
a+, ld.
kanze
(Arnaud Debaene) wrote in message news:...
Arnaud Meurgues wrote in message news:<41a30ccb$0$6702$...
C'est fort possible. Je ne me suis jamais vraiment penché dessus, j'avoue. Mais du coup, je me demande à quoi sert le .lib...
Essentiellement à résoudre les offsets des symboles de la DLL au moment de l'édition de liens, et donc de diminuer le temps de démarrage du programme (à l'execution, il n'y a plus qu'un offset à appliquer pour tenir compte de l'addresse de chargement de la DLL).
Je n'ai rien compris de ton explication. Pour moi, un .lib, c'est une bibliothèque non linkée, qu'on linke statiquement. Pour faire soit un exécutable, soit un objet dynamique (.dll ou .so). En fait, une bibliothèque n'est qu'une collection de fichiers objets, dont on extrait ce qu'il faut pour résoudre des externes non-résolus.
En fait, on a les .obj et les .lib (.o et .a sous Unix) qui servent lors du développement, et les .dll et les .exe (.so et sans suffixe sous Unix) qu'on livre en tant que produit.
-- James Kanze GABI Software http://www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
adebaene@club-internet.fr (Arnaud Debaene) wrote in message
news:<16a4a8c7.0411240216.380cb46b@posting.google.com>...
Arnaud Meurgues <arnaud@meurgues.non.fr.invalid> wrote in message
news:<41a30ccb$0$6702$626a14ce@news.free.fr>...
C'est fort possible. Je ne me suis jamais vraiment penché dessus,
j'avoue. Mais du coup, je me demande à quoi sert le .lib...
Essentiellement à résoudre les offsets des symboles de la DLL au
moment de l'édition de liens, et donc de diminuer le temps de
démarrage du programme (à l'execution, il n'y a plus qu'un offset à
appliquer pour tenir compte de l'addresse de chargement de la DLL).
Je n'ai rien compris de ton explication. Pour moi, un .lib, c'est une
bibliothèque non linkée, qu'on linke statiquement. Pour faire soit un
exécutable, soit un objet dynamique (.dll ou .so). En fait, une
bibliothèque n'est qu'une collection de fichiers objets, dont on extrait
ce qu'il faut pour résoudre des externes non-résolus.
En fait, on a les .obj et les .lib (.o et .a sous Unix) qui servent lors
du développement, et les .dll et les .exe (.so et sans suffixe sous
Unix) qu'on livre en tant que produit.
--
James Kanze GABI Software http://www.gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Arnaud Meurgues wrote in message news:<41a30ccb$0$6702$...
C'est fort possible. Je ne me suis jamais vraiment penché dessus, j'avoue. Mais du coup, je me demande à quoi sert le .lib...
Essentiellement à résoudre les offsets des symboles de la DLL au moment de l'édition de liens, et donc de diminuer le temps de démarrage du programme (à l'execution, il n'y a plus qu'un offset à appliquer pour tenir compte de l'addresse de chargement de la DLL).
Je n'ai rien compris de ton explication. Pour moi, un .lib, c'est une bibliothèque non linkée, qu'on linke statiquement. Pour faire soit un exécutable, soit un objet dynamique (.dll ou .so). En fait, une bibliothèque n'est qu'une collection de fichiers objets, dont on extrait ce qu'il faut pour résoudre des externes non-résolus.
En fait, on a les .obj et les .lib (.o et .a sous Unix) qui servent lors du développement, et les .dll et les .exe (.so et sans suffixe sous Unix) qu'on livre en tant que produit.
-- James Kanze GABI Software http://www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Arnaud Debaene
wrote:
(Arnaud Debaene) wrote in message news:...
Arnaud Meurgues wrote in message news:<41a30ccb$0$6702$...
C'est fort possible. Je ne me suis jamais vraiment penché dessus, j'avoue. Mais du coup, je me demande à quoi sert le .lib...
Essentiellement à résoudre les offsets des symboles de la DLL au moment de l'édition de liens, et donc de diminuer le temps de démarrage du programme (à l'execution, il n'y a plus qu'un offset à appliquer pour tenir compte de l'addresse de chargement de la DLL).
Je n'ai rien compris de ton explication. Pour moi, un .lib, c'est une bibliothèque non linkée, qu'on linke statiquement. Pour faire soit un exécutable, soit un objet dynamique (.dll ou .so). Oui, mais sous Windows il y a un autre type de fichiers : les "librairies
d'import" qui sont (à tort AMHA) nommées en ".lib" comme les "vraies" librairies statiques. Une librairie d'import est générée en même temps qu'une DLL et permet au linker de résoudre au link-time les symboles de la DLL, mais elle ne contient pas de code en elle même.
Arnaud
kanze@gabi-soft.fr wrote:
adebaene@club-internet.fr (Arnaud Debaene) wrote in message
news:<16a4a8c7.0411240216.380cb46b@posting.google.com>...
Arnaud Meurgues <arnaud@meurgues.non.fr.invalid> wrote in message
news:<41a30ccb$0$6702$626a14ce@news.free.fr>...
C'est fort possible. Je ne me suis jamais vraiment penché dessus,
j'avoue. Mais du coup, je me demande à quoi sert le .lib...
Essentiellement à résoudre les offsets des symboles de la DLL au
moment de l'édition de liens, et donc de diminuer le temps de
démarrage du programme (à l'execution, il n'y a plus qu'un offset à
appliquer pour tenir compte de l'addresse de chargement de la DLL).
Je n'ai rien compris de ton explication. Pour moi, un .lib, c'est une
bibliothèque non linkée, qu'on linke statiquement. Pour faire soit un
exécutable, soit un objet dynamique (.dll ou .so).
Oui, mais sous Windows il y a un autre type de fichiers : les "librairies
d'import" qui sont (à tort AMHA) nommées en ".lib" comme les "vraies"
librairies statiques. Une librairie d'import est générée en même temps
qu'une DLL et permet au linker de résoudre au link-time les symboles de la
DLL, mais elle ne contient pas de code en elle même.
Arnaud Meurgues wrote in message news:<41a30ccb$0$6702$...
C'est fort possible. Je ne me suis jamais vraiment penché dessus, j'avoue. Mais du coup, je me demande à quoi sert le .lib...
Essentiellement à résoudre les offsets des symboles de la DLL au moment de l'édition de liens, et donc de diminuer le temps de démarrage du programme (à l'execution, il n'y a plus qu'un offset à appliquer pour tenir compte de l'addresse de chargement de la DLL).
Je n'ai rien compris de ton explication. Pour moi, un .lib, c'est une bibliothèque non linkée, qu'on linke statiquement. Pour faire soit un exécutable, soit un objet dynamique (.dll ou .so). Oui, mais sous Windows il y a un autre type de fichiers : les "librairies
d'import" qui sont (à tort AMHA) nommées en ".lib" comme les "vraies" librairies statiques. Une librairie d'import est générée en même temps qu'une DLL et permet au linker de résoudre au link-time les symboles de la DLL, mais elle ne contient pas de code en elle même.
Arnaud
Matthieu Moy
writes:
Une bibliothèque, c'est quelque chose qui sert dans le développement des logiciels. Tu ne le livres donc pas à l'utilisateur. Ce que tu livres à l'utilisateur, c'est soit un exécutable, soit un plug-in.
Est-ce que tu considères le fichier /lib/libc.so.6 que j'ai sur mon disque dur comme un plugin ou un executable ?
(bon, ma machine est un mauvais exemple, j'ai /aussi/ les .h, mais je pourrais très bien me passer des .h pour faire tourner mes applications, tant que je ne compile pas.)
Dans le cas de Debian par exemple, pour la plupart des bibliothèques disponibles, il y a un paquet libXXX pour la bibliothèque elle même, et un libXXX-dev qui contient les .h en plus. Les deux notions existent et sont différentes.
-- Matthieu
kanze@gabi-soft.fr writes:
Une bibliothèque, c'est quelque chose qui sert dans le développement des
logiciels. Tu ne le livres donc pas à l'utilisateur. Ce que tu livres à
l'utilisateur, c'est soit un exécutable, soit un plug-in.
Est-ce que tu considères le fichier /lib/libc.so.6 que j'ai sur mon
disque dur comme un plugin ou un executable ?
(bon, ma machine est un mauvais exemple, j'ai /aussi/ les .h, mais je
pourrais très bien me passer des .h pour faire tourner mes
applications, tant que je ne compile pas.)
Dans le cas de Debian par exemple, pour la plupart des bibliothèques
disponibles, il y a un paquet libXXX pour la bibliothèque elle même,
et un libXXX-dev qui contient les .h en plus. Les deux notions
existent et sont différentes.
Une bibliothèque, c'est quelque chose qui sert dans le développement des logiciels. Tu ne le livres donc pas à l'utilisateur. Ce que tu livres à l'utilisateur, c'est soit un exécutable, soit un plug-in.
Est-ce que tu considères le fichier /lib/libc.so.6 que j'ai sur mon disque dur comme un plugin ou un executable ?
(bon, ma machine est un mauvais exemple, j'ai /aussi/ les .h, mais je pourrais très bien me passer des .h pour faire tourner mes applications, tant que je ne compile pas.)
Dans le cas de Debian par exemple, pour la plupart des bibliothèques disponibles, il y a un paquet libXXX pour la bibliothèque elle même, et un libXXX-dev qui contient les .h en plus. Les deux notions existent et sont différentes.
-- Matthieu
Gabriel Dos Reis
Matthieu Moy writes:
| writes: | | > Une bibliothèque, c'est quelque chose qui sert dans le développement des | > logiciels. Tu ne le livres donc pas à l'utilisateur. Ce que tu livres à | > l'utilisateur, c'est soit un exécutable, soit un plug-in. | | Est-ce que tu considères le fichier /lib/libc.so.6 que j'ai sur mon | disque dur comme un plugin ou un executable ?
| kanze@gabi-soft.fr writes:
|
| > Une bibliothèque, c'est quelque chose qui sert dans le développement des
| > logiciels. Tu ne le livres donc pas à l'utilisateur. Ce que tu livres à
| > l'utilisateur, c'est soit un exécutable, soit un plug-in.
|
| Est-ce que tu considères le fichier /lib/libc.so.6 que j'ai sur mon
| disque dur comme un plugin ou un executable ?
| writes: | | > Une bibliothèque, c'est quelque chose qui sert dans le développement des | > logiciels. Tu ne le livres donc pas à l'utilisateur. Ce que tu livres à | > l'utilisateur, c'est soit un exécutable, soit un plug-in. | | Est-ce que tu considères le fichier /lib/libc.so.6 que j'ai sur mon | disque dur comme un plugin ou un executable ?
un plugout? ;-)
-- Gaby
kanze
Matthieu Moy wrote in message news:...
writes:
Une bibliothèque, c'est quelque chose qui sert dans le développement des logiciels. Tu ne le livres donc pas à l'utilisateur. Ce que tu livres à l'utilisateur, c'est soit un exécutable, soit un plug-in.
Est-ce que tu considères le fichier /lib/libc.so.6 que j'ai sur mon disque dur comme un plugin ou un executable ?
C'est un plugin, non ? C'est un plugin un peu spécial, dans le sens qu'il y a beaucoup d'applications qui l'utilisent. Mais il fonctionne comme un plugin, et existe pour à peu près la même raison : de customiser ton application. Ici, le customiser en fonction de la version de l'OS, etc. (et dans la pratique, il change assez peu pour que je ne suis pas sûr qu'une édition de liens dynamiques se justifie).
-- James Kanze GABI Software http://www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Matthieu Moy <MatthieuNOSPAM.Moy@imag.fr.invalid> wrote in message
news:<vpqllcp8y75.fsf@ecrins.imag.fr>...
kanze@gabi-soft.fr writes:
Une bibliothèque, c'est quelque chose qui sert dans le développement
des logiciels. Tu ne le livres donc pas à l'utilisateur. Ce que tu
livres à l'utilisateur, c'est soit un exécutable, soit un plug-in.
Est-ce que tu considères le fichier /lib/libc.so.6 que j'ai sur mon
disque dur comme un plugin ou un executable ?
C'est un plugin, non ? C'est un plugin un peu spécial, dans le sens
qu'il y a beaucoup d'applications qui l'utilisent. Mais il fonctionne
comme un plugin, et existe pour à peu près la même raison : de
customiser ton application. Ici, le customiser en fonction de la version
de l'OS, etc. (et dans la pratique, il change assez peu pour que je ne
suis pas sûr qu'une édition de liens dynamiques se justifie).
--
James Kanze GABI Software http://www.gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Une bibliothèque, c'est quelque chose qui sert dans le développement des logiciels. Tu ne le livres donc pas à l'utilisateur. Ce que tu livres à l'utilisateur, c'est soit un exécutable, soit un plug-in.
Est-ce que tu considères le fichier /lib/libc.so.6 que j'ai sur mon disque dur comme un plugin ou un executable ?
C'est un plugin, non ? C'est un plugin un peu spécial, dans le sens qu'il y a beaucoup d'applications qui l'utilisent. Mais il fonctionne comme un plugin, et existe pour à peu près la même raison : de customiser ton application. Ici, le customiser en fonction de la version de l'OS, etc. (et dans la pratique, il change assez peu pour que je ne suis pas sûr qu'une édition de liens dynamiques se justifie).
-- James Kanze GABI Software http://www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34