|
From: | Emil Molin |
Subject: | Re: [Discuss-gnuradio] Problem with "How-to-write-a-block"-tutorial |
Date: | Fri, 20 Feb 2009 10:32:03 +0100 |
2009/2/18 Eric Blossom <address@hidden>On Wed, Feb 18, 2009 at 03:39:52PM +0100, Emil Molin wrote:$ c++filt _ZTV14test_double_ff
> Hi and thanks for the help, yes ive run it (and ive renamed the block to
> 'test' instead of 'howto_2' but i still get something wrong obviously
> because when running the test script i get this error:
>
> File "./qa_test.py", line 6, in <module>
> from gnuradio import gr, gr_unittest, test
> File "/Library/Python/2.5/site-packages/gnuradio/test.py", line 21, in
> <module>
> import _test
> ImportError: dlopen(/Library/Python/2.5/site-packages/gnuradio/_test.so, 2):
> Symbol not found: __ZTV14test_double_ff
> Referenced from: /Library/Python/2.5/site-packages/gnuradio/_test.so
> Expected in: dynamic lookup
>
> it seems like there is something wrong in the swig-generated _test.so file
> but how to fix that i have no idea?
>
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
[Prev in Thread] | Current Thread | [Next in Thread] |