Я пытаюсь использовать C++ LIB с питоном, используя SWIG, моя проблема заключается в том, что символ основной класс отсутствует,
Missing/неправильно подпись Whan преобразования C++ библиотека для Python, используя SWIG
$ ldd -r -d _rf24.so 2>&1|grep RF24 undefined symbol: _ZN4RF24C1Ehh (./_rf24.so) $ objdump -t librf24-bcm.so.1.0 |grep RF24 . . . 000032cc g F .text 00000044 _ZN4RF24C1Ehhj 000032cc g F .text 00000044 _ZN4RF24C2Ehhj . . .
питон исключение :
ImportError: ./_rf24.so: undefined symbol: _ZN4RF24C1Ehh
Я попытался с помощью Lib OBJS из исходного файла Makefile или пытался собрать их с некоторыми флагами, но результат тот же строят линии:
$ gcc -c RF24_wrap.cxx -I/usr/include/python2.7 $ gcc -lstdc++ -shared bcm2835.o RF24.o RF24_wrap.o -o _rf24.so
RF24.i (файл SWIG):
%module rf24
%{
#include "RF24.h"
%}
%include "RF24.h"
//%include "bcm2835.h"
%include "carrays.i"
%array_class(char, byteArray);
RF24.h (соответствующая часть заголовочного файла класса):
.
.
.
// bla bla bla enums...
class RF24
{
private:
// bla bla bla
protected:
// bla bla bla
public:
RF24(uint8_t _cepin, uint8_t _cspin);
RF24(uint8_t _cepin, uint8_t _cspin, uint32_t spispeed)
//bla bla bla
Когда вы найдете свое собственное решение, отправьте его как ответ, а не отредактируйте вопрос. – Flexo