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