|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : février 2007 Messages : 2 ![]() |
Bonjour,
j'ai créer une librairie en c++ que j'ai partagé via Swig. je l'utilise sans problème sur une architecture 32 bits. je voudrai pouvoir utiliser ma librairie dans mon architecture 64 bits. la contrainte étant que ma librairie utilise des modules .so qui sont 32 bits et ne peuvent être compiler en 64. Est-ce possible ? Comment ? voici ce que j’utilise (version allégé) pour la création de ma lib partagé : Code :
Code :
|
||||
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Inscription : juin 2008 Messages : 3 739 ![]() |
Salut,
L'erreur: "ImportError: /usr/easyvalid/tools/Econf/Convert/obj/linuxrel/_econf.so: wrong ELF class: ELFCLASS32" est "systeme".... Comme l'espace d'adressage que l'OS propose à une bibliothèque 32 bits est sensiblement différent d'un 64 bits, je ne doute qu'un "OS" supporte un tel mélange - c'est compliqué... et il y a des solutions de contournement "possible" au niveau application qui en réduisent l'intérêt. Dans votre cas, la solution pourrait être d'installer un Python 32 bits dans un OS 64 bits... Si vous voulez absolument profiter d'un espace d'adressage 64bits et de l'ancienne bibliothèque, il devrait être "possible" d'interfacer les deux via un IPC quelconque (un process 64 bits qui cause avec un process 32 bits de façon plus ou moins proche). - W
__________________
Architectures Post-Modernes |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : février 2007 Messages : 2 ![]() |
Merci @wiztricks pour votre réponse.
Mon problème est que le programme python qui va importer la librairie "econf" est en 64 bits et utilise massivement le multithreading (au delà de la limite de 302 thread système en mode 32 bits), il me faut donc trouver une solution qui me permet d'importé cette lib 32 dans mon programme 64. Existe t'il une "passerelle" 64->32 ? ###### ###### # P64 # --> passerelle --> # lib 32# ###### ###### Merci |
|
|
00
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() Inscription : juin 2008 Messages : 3 739 ![]() |
Salut,
On peut toujours faire une "passerelle", la question est de savoir si on pourra se contenter d'un pont en corde qui sera traversé de temps en temps par des humains ou s'il faut un truc genre aqueduc de Millau devant supporter le passage de XX tonnes. Ce sera un dialogue entre deux processus ou entre threads de processus différents. Ce sera donc "context switch" et "transferts de messages"... qui pourront être pénalisants côté temps de réponse. Après c'est du Python32 <-> Python64 ou du Python64 - DLL64bits <-> Process 32 bits. - W
__________________
Architectures Post-Modernes |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com