2009/2/18 Eric B. [email protected]
ImportError: dlopen(/Library/Python/2.5/site-packages/gnuradio/_test.so,
$ c++filt _ZTV14test_double_ff
vtable for test_double_ff
Are you sure you’ve got code for the class named test_double_ff linked
into the shared library you’re building?
Eric
Ive linked everythin in the same way as in the howto_square_ff example,
what
files could i have missed something in to not get the test_double_ff
class
linked?
And well if its any reason to the problem this is how my makefile looks:
Copyright 2004,2005,2006,2008 Free Software Foundation, Inc.
This file is part of GNU Radio
GNU Radio is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Radio is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Radio; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street,
Boston, MA 02110-1301, USA.
include $(top_srcdir)/Makefile.common
Install this stuff so that it ends up as the gnuradio.test module
This usually ends up at:
${prefix}/lib/python${python_version}/site-packages/gnuradio
ourpythondir = $(grpythondir)
ourlibdir = $(grpyexecdir)
AM_CPPFLAGS = $(STD_DEFINES_AND_INCLUDES) $(PYTHON_CPPFLAGS)
SWIGPYTHONARGS = $(SWIGPYTHONFLAGS) $(SWIGGRFLAGS)
ALL_IFILES =
$(LOCAL_IFILES)
$(NON_LOCAL_IFILES)
NON_LOCAL_IFILES =
$(GNURADIO_CORE_INCLUDEDIR)/swig/gnuradio.i
LOCAL_IFILES =
$(top_srcdir)/src/lib/test.i
These files are built by SWIG. The first is the C++ glue.
The second is the python wrapper that loads the _test shared library
and knows how to call our extensions.
BUILT_SOURCES =
test.cc
test.py
This gets howto.py installed in the right place
ourpython_PYTHON =
test.py
ourlib_LTLIBRARIES = _test.la
These are the source files that go into the shared library
_test_la_SOURCES =
test.cc
test_double_ff.cc
magic flags
_test_la_LDFLAGS = $(NO_UNDEFINED) -module -avoid-version
link the library against some comon swig runtime code and the
c++ standard library
_test_la_LIBADD =
$(PYTHON_LDFLAGS)
-lstdc++
test.cc test.py: $(LOCAL_IFILES) $(ALL_IFILES)
$(SWIG) $(SWIGPYTHONARGS) -module test -o test.cc $(LOCAL_IFILES)
These headers get installed in ${prefix}/include/gnuradio
grinclude_HEADERS =
test_double_ff.h
These swig headers get installed in ${prefix}/include/gnuradio/swig
swiginclude_HEADERS =
$(LOCAL_IFILES)
MOSTLYCLEANFILES = $(BUILT_SOURCES) *.pyc
Don’t distribute output of swig
dist-hook:
@for file in $(BUILT_SOURCES); do echo $(RM) $(distdir)/$$file; done
@for file in $(BUILT_SOURCES); do $(RM) $(distdir)/$$file; done