OVH Cloud OVH Cloud

objets partagés

25 réponses
Avatar
3dsman
salut!

je cherche a savoir si les .so sont pour linux la meme chose que les
.dll sous windows?
quelles differences y a il?
quelles difference dans la gestion dans le programme?
y a il un autre moyen de faire des "plugins" qui soit multi-os?

merci

10 réponses

1 2 3
Avatar
Jean-Marc Bourguet
writes:

Jean-Marc Bourguet wrote:
3dsman writes:

quelles difference dans la gestion dans le programme? Les
fonctions à utiliser pour les charger manuellement ne sont

pas les mêmes.


ok et entre unix et macos c'est les meme?


Il n'y a déjà pas tellement d'homogénéité entre les autres
Unix...


J'ai exactement le même code qui tourne sous Linux et sous Solaris.

C'est vrai que les dlopen et al. ne font pas partie de la norme
Posix ; ils sont une extensions X/Open System. Je ne connais pas la
politique de Mac vis-à-vis de Open System, ni même sur quel Unix il
se base. Mais il n'est pas difficile d'écrire des plugin portable
entre Unix et tous les Open System (Solaris, HP/UX, AIX...).


J'avais le souvenir que dlopen etc n'etaient pas disposible sous
HP/UX. Ou je me souviens mal ou les choses ont changes car cette API
est en effet disponible sous HP-UX.

y a il un autre moyen de faire des "plugins" qui soit
multi-os? > > > > Oui, mais c'est vraiment hors de ta portée
si tu dois > > > > poser la question.



peut etre mais c'est quoi? :-)


Implémenter toi même un chargeur/éditeur de liens.


Je ne comprends pas.


En disant multi-OS j'avais compris: on compile une fois et on charge
la meme chose que l'on soit sous Linux, Solaris X86 ou sous MS-Windows
(je supposais aussi que le processeur etait le meme). Tu as l'air
d'avoir compris la compatibilite des sources (ce qui est possible meme
entre Unix/Windows une fois faite l'infrastructure).

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





Avatar
Gabriel Dos Reis
writes:

| Jean-Marc Bourguet wrote:
| > 3dsman writes:
|
| > > >>quelles difference dans la gestion dans le programme? Les
| > > >fonctions à utiliser pour les charger manuellement ne sont
| > > >pas les mêmes.
|
| > > ok et entre unix et macos c'est les meme?
|
| > Il n'y a déjà pas tellement d'homogénéité entre les autres
| > Unix...
|
| J'ai exactement le même code qui tourne sous Linux et sous
| Solaris.
|
| C'est vrai que les dlopen et al. ne font pas partie de la norme
| Posix ; ils sont une extensions X/Open System. Je ne connais pas
| la politique de Mac vis-à-vis de Open System, ni même sur quel
| Unix il se base. Mais il n'est pas difficile d'écrire des plugin
| portable entre Unix et tous les Open System (Solaris, HP/UX,
| AIX...).

Ah ? Ce n'est pas exactement ce que les gens de libtool racontent.
Mais, hein.

-- Gaby
Avatar
Gabriel Dos Reis
Jean-Marc Bourguet writes:

| writes:
|
| > Jean-Marc Bourguet wrote:
| > > 3dsman writes:
| >
| > > > >>quelles difference dans la gestion dans le programme? Les
| > > > >fonctions à utiliser pour les charger manuellement ne sont
| > > > >pas les mêmes.
| >
| > > > ok et entre unix et macos c'est les meme?
| >
| > > Il n'y a déjà pas tellement d'homogénéité entre les autres
| > > Unix...
| >
| > J'ai exactement le même code qui tourne sous Linux et sous Solaris.
| >
| > C'est vrai que les dlopen et al. ne font pas partie de la norme
| > Posix ; ils sont une extensions X/Open System. Je ne connais pas la
| > politique de Mac vis-à-vis de Open System, ni même sur quel Unix il
| > se base. Mais il n'est pas difficile d'écrire des plugin portable
| > entre Unix et tous les Open System (Solaris, HP/UX, AIX...).
|
| J'avais le souvenir que dlopen etc n'etaient pas disposible sous
| HP/UX.

C'est le cas. L'API est différente.

http://www.faqs.org/docs/Linux-HOWTO/Program-Library-HOWTO.html

-- Gaby
Avatar
Jean-Marc Bourguet
Gabriel Dos Reis writes:

writes:

| Jean-Marc Bourguet wrote:
| > 3dsman writes:
|
| > > >>quelles difference dans la gestion dans le programme? Les
| > > >fonctions à utiliser pour les charger manuellement ne sont
| > > >pas les mêmes.
|
| > > ok et entre unix et macos c'est les meme?
|
| > Il n'y a déjà pas tellement d'homogénéité entre les autres
| > Unix...
|
| J'ai exactement le même code qui tourne sous Linux et sous
| Solaris.
|
| C'est vrai que les dlopen et al. ne font pas partie de la norme
| Posix ; ils sont une extensions X/Open System. Je ne connais pas
| la politique de Mac vis-à-vis de Open System, ni même sur quel
| Unix il se base. Mais il n'est pas difficile d'écrire des plugin
| portable entre Unix et tous les Open System (Solaris, HP/UX,
| AIX...).

Ah ? Ce n'est pas exactement ce que les gens de libtool racontent.
Mais, hein.


Je crois que les gens de libtool racontent plus sur l'interface des
programmes manipulant les lib et des options que de l'API fournie aux
programmeurs.

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

Avatar
Jean-Marc Bourguet
Gabriel Dos Reis writes:

Jean-Marc Bourguet writes:

| J'avais le souvenir que dlopen etc n'etaient pas disposible sous
| HP/UX.

C'est le cas. L'API est différente.

http://www.faqs.org/docs/Linux-HOWTO/Program-Library-HOWTO.html


dlopen est maintenant disponible sous HP-UX. La man page est datee
Release 11.11: December 2001.

(Ca fait partie de POSIX, extension XSI: X/Open System Interfaces, et
ca faisait partie de "The Single UNIX ® Specification, Version 2" aka
UNIX 98).

Mais naturellement le fait que l'API soit la meme n'impose rien sur
les outils pour manipuler les lib dynamiques.

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

Avatar
kanze
Jean-Marc Bourguet wrote:
Gabriel Dos Reis writes:

Jean-Marc Bourguet writes:

| J'avais le souvenir que dlopen etc n'etaient pas
| disposible sous HP/UX.

C'est le cas. L'API est différente.

http://www.faqs.org/docs/Linux-HOWTO/Program-Library-HOWTO.html


dlopen est maintenant disponible sous HP-UX. La man page est
datee Release 11.11: December 2001.

(Ca fait partie de POSIX, extension XSI: X/Open System
Interfaces, et ca faisait partie de "The Single UNIX ®
Specification, Version 2" aka UNIX 98).


Attention : il y a une contradiction en ce que tu viens de
dire. Si c'est une extension XSI, ça veut dire qu'il ne fait pas
partie de Posix. Même s'il se trouve documenté dans le même
document.

Mais naturellement le fait que l'API soit la meme n'impose
rien sur les outils pour manipuler les lib dynamiques.


Tout à fait. Mais même sans les objets dynamiques, je trouve
qu'il faut adapter les fichiers de make beaucoup d'une
plateforme à l'autre.

--
James Kanze GABI Software
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


Avatar
Richard Delorme

Une manière simple consiste à faire un plugin qui lit et écrit
sur les entrées standards (std::cin et std::cout), et
l'application principale se lie au plugin par des tubes
(pipes).


Je ne crois pas qu'on appelle ça un plugin ; si oui, je fais des
plugin depuis vingt ans.


Sous Linux, certaines applications graphiques ne se gènent pas pour
appeler cela des plugins.

--
Richard


Avatar
kanze
Gabriel Dos Reis wrote:
writes:

| Jean-Marc Bourguet wrote:
| > 3dsman writes:

| > > >>quelles difference dans la gestion dans le programme?
| > > >Les fonctions à utiliser pour les charger manuellement
| > > >ne sont pas les mêmes.

| > > ok et entre unix et macos c'est les meme?

| > Il n'y a déjà pas tellement d'homogénéité entre les autres
| > Unix...

| J'ai exactement le même code qui tourne sous Linux et sous
| Solaris.

| C'est vrai que les dlopen et al. ne font pas partie de la
| norme Posix ; ils sont une extensions X/Open System. Je ne
| connais pas la politique de Mac vis-à-vis de Open System, ni
| même sur quel Unix il se base. Mais il n'est pas difficile
| d'écrire des plugin portable entre Unix et tous les Open
| System (Solaris, HP/UX, AIX...).

Ah ? Ce n'est pas exactement ce que les gens de libtool
racontent. Mais, hein.


C'est ce que raconte Open System. Le propriétaire de la marque
déposée Unix. Il racconte aussi que HP/UX est conforme, et qu'il
a droit à utiliser la marque. Alors, s'il n'implémente pas
dlopen et al., il y a quelque chose qui ne cloche pas.

Je n'ai pas actuellement accès à une machine avec HP/UX (ni AIX,
d'ailleurs) pour tester. Mais s'il ne supporte pas dlopen, il y
a une énorme escroquerie quelque part -- HP/UX se dit Unix, et
le groupe à qui appartient la marque dit que pour avoir le droit
à utiliser cette marque, il faut avoir implémenter dlopen et al.

Est-ce que c'est possible que les gens de libtool soit mal
informés, ou que leurs informations ne sont pas à jours ? Par la
passée, HP s'est toujours montré très rigueureux en ce qui
concerne les normes. (Il ne faut pas oublier non plus que c'est
le premier membre américain à Open Systems, qui s'appelait
X/Open alors.)

--
James Kanze GABI Software
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

Avatar
kanze
wrote:
Gabriel Dos Reis wrote:
writes:

| Jean-Marc Bourguet wrote:
| > 3dsman writes:

| > > >>quelles difference dans la gestion dans le
| > > >programme? Les fonctions à utiliser pour les charger
| > > >manuellement ne sont pas les mêmes.

| > > ok et entre unix et macos c'est les meme?

| > Il n'y a déjà pas tellement d'homogénéité entre les
| > autres Unix...

| J'ai exactement le même code qui tourne sous Linux et sous
| Solaris.

| C'est vrai que les dlopen et al. ne font pas partie de la
| norme Posix ; ils sont une extensions X/Open System. Je ne
| connais pas la politique de Mac vis-à-vis de Open System,
| ni même sur quel Unix il se base. Mais il n'est pas
| difficile d'écrire des plugin portable entre Unix et tous
| les Open System (Solaris, HP/UX, AIX...).

Ah ? Ce n'est pas exactement ce que les gens de libtool
racontent. Mais, hein.


C'est ce que raconte Open System. Le propriétaire de la marque
déposée Unix. Il racconte aussi que HP/UX est conforme, et
qu'il a droit à utiliser la marque. Alors, s'il n'implémente
pas dlopen et al., il y a quelque chose qui ne cloche pas.


Quelque vérifications supplémentaires révèlent que HP/UX n'est
conforme qu'avec Unix 95, donc avant l'introduction des objets
dynamiques. Il n'y a que Solaris (à partir de Solaris 8), AIX (à
partir de 5L) et le HP Alpha V5.1A (né DEC) qui sont conformes à
Unix 98.

Ça ne veut pas dire que HP/UX ne supporte pas dlopen, mais qu'on
ne peut pas le conclure d'après la norme. (Ce qui me deçoit
énormement. J'ai toujours cru qu'en respectant Posix et Open
System, j'avais du code portable.)

--
James Kanze GABI Software
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


Avatar
Gabriel Dos Reis
writes:

| Ça ne veut pas dire que HP/UX ne supporte pas dlopen, mais qu'on

mais il supporte une autre API avec une sémantique proche.

-- Gaby
1 2 3