转换c+时签名缺失/错误+;使用SWIG将库转换为python 我尝试使用Python使用CIS+C++来使用SWIG, 我的问题是主要的班级标志不见了,

转换c+时签名缺失/错误+;使用SWIG将库转换为python 我尝试使用Python使用CIS+C++来使用SWIG, 我的问题是主要的班级标志不见了, ,c++,python,swig,porting,symbols,C++,Python,Swig,Porting,Symbols,我尝试使用原始Makefile中的lib objs,或者尝试使用一些标志编译它们,但结果是一样的 生产线: $ gcc -c RF24_wrap.cxx -I/usr/include/python2.7 $ gcc -lstdc++ -shared bcm2835.o RF24.o RF24_wrap.o -o _rf24.so RF24.h(类头文件的相关部分): 问题解决了!在使用c++filt之后,我发现库中的一个构造函数没有定义,在删除它之后,问题解决了当您找到自己的解决方案时,

我尝试使用原始Makefile中的lib objs,或者尝试使用一些标志编译它们,但结果是一样的 生产线:

$ gcc -c RF24_wrap.cxx -I/usr/include/python2.7 $ gcc -lstdc++ -shared bcm2835.o RF24.o RF24_wrap.o -o _rf24.so RF24.h(类头文件的相关部分):


问题解决了!在使用c++filt之后,我发现库中的一个构造函数没有定义,在删除它之后,问题解决了

当您找到自己的解决方案时,将其作为答案发布,而不是对问题进行编辑。

        ImportError: ./_rf24.so: undefined symbol: _ZN4RF24C1Ehh
$ gcc -c RF24_wrap.cxx -I/usr/include/python2.7 $ gcc -lstdc++ -shared bcm2835.o RF24.o RF24_wrap.o -o _rf24.so

    %module rf24
    %{
    #include "RF24.h"
    %}

    %include "RF24.h"
    //%include "bcm2835.h"
    %include "carrays.i"
    %array_class(char, byteArray);


        .
        .
        .
        // 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