Help: undefined symbol: _ZdlPvj

Patrick Good <[email protected]> Sun, 21 May 2023 08:39:46 +0000
Newsgroups gmane.comp.programming.swig
Message-ID <[email protected]>
Hello


I use swig with python.
The environment I use is PetaLinux/Yocto to build the project. Currently the project is just a small test code to try to run it to test the interface. SWIG version is 4.1.1, Python version is: 3.9.9.


Error:

root@mz7010-som-base-2022-1:~# python3
Python 3.9.9 (main, Nov 15 2021, 18:05:17)
[GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import Sytemtechnik.libsysproject
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'Sytemtechnik'
>>> import Systemtechnik.libsysproject
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.9/Systemtechnik/libsysproject.py", line 10, in <module>
    from . import _libsysproject
ImportError: /usr/lib/python3.9/Systemtechnik/_libsysproject.so: undefined symbol: _ZdlPvj

Makefile:

APP = libsysproject

LIBSOURCES=*.cpp

OUTS = *.o

NAME := sysproject

MAJOR = 1.0

MINOR = 1

VERSION = $(MAJOR).$(MINOR)

all: lib$(NAME).so

lib$(NAME).so.$(VERSION): compile

# $(CC) $(LDFLAGS) $(OUTS) -shared -Wl,-soname,_lib$(NAME).so.$(MAJOR) -o _lib$(NAME).so.$(VERSION)

$(CC) libsysproject.o libsysproject_wrap.o -shared -o _lib$(NAME).so

lib$(NAME).so: lib$(NAME).so.$(VERSION)

#rm -f _lib$(NAME).so.$(MAJOR) _lib$(NAME).so

#ln -s _lib$(NAME).so.$(VERSION) _lib$(NAME).so.$(MAJOR)

#ln -s _lib$(NAME).so.$(MAJOR) _lib$(NAME).so

compile: swig

# $(CC) $(CFLAGS) -c -fPIC libsysproject.cpp libsysproject_wrap.cxx -Irecipe-sysroot/usr/include/python3.9

$(CC) -c -fPIC libsysproject.cpp libsysproject_wrap.cxx -Irecipe-sysroot/usr/include/python3.9

swig:

# /usr/local/bin/swig -c++ -python -py3 libsysproject.i

/usr/local/bin/swig -c++ -python libsysproject.i

clean:

rm -rf *.o *.so *.so.*

cpp file:

#include "include/libsysproject.hpp"

Example::Example() {}

Example::~Example() {}

int Example::addNumbers(int a, int b) {

return a + b;

}


hpp file:

#ifndef LIBSYSPROJECT_HPP_

#define LIBSYSPROJECT_HPP_

#include <stdint.h>

#include <sys/types.h>

class Example {

public:

Example();

~Example();

int addNumbers(int a, int b);

};

#endif // LIBSYSPROJECT_HPP_

.i file:

%module libsysproject

%{

#include "include/libsysproject.hpp"

%}

%include "include/libsysproject.hpp"

_______________________________________________
Swig-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/swig-user