utiliser une librairie partager 32bits sur python 64
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
# Création de la librairie partager Python
ar rcs obj/linuxrel/libeconf.a obj/linuxrel/econf.o
echo '/* econf.i */
%module econf
%{
#include "../../econf.h"
%}
%include "../../econf.h"' > obj/linuxrel/econf.i
swig -python -c++ obj/linuxrel/econf.i
g++ -m32 -c -fPIC -I/usr/include/python2.6 \
-I/usr/easyvalid/tools/Econf/Framework/framework_sdk_v1.4.7/include obj/linuxrel/econf_wrap.cxx
g++ -m32 -O3 -shared -L/usr/easyvalid/tools/Econf/Framework/framework_sdk_v1.4.7/bin -Lobj/linuxrel/ -lpython2.6 -Wl,-soname,_econf.so econf_wrap.o -leconf -lsndfile -lm -ldl -lpthread -lrt -o obj/linuxrel/_econf.so |
lors de l'import depuis python 64 j'obtient :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
[easyvalid@EasyValid linuxrel]$ python -m econf
Traceback (most recent call last):
File "/usr/lib64/python2.6/runpy.py", line 122, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib64/python2.6/runpy.py", line 34, in _run_code
exec code in run_globals
File "/usr/easyvalid/tools/Econf/Convert/obj/linuxrel/econf.py", line 25, in <module>
_econf = swig_import_helper()
File "/usr/easyvalid/tools/Econf/Convert/obj/linuxrel/econf.py", line 21, in swig_import_helper
_mod = imp.load_module('_econf', fp, pathname, description)
ImportError: /usr/easyvalid/tools/Econf/Convert/obj/linuxrel/_econf.so: wrong ELF class: ELFCLASS32 |