dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #01080
Re: PyDOLFIN
Quoting Anders Logg <logg@xxxxxxxxx>:
> On Sat, Oct 01, 2005 at 01:40:26PM +0200, Johan Jansson wrote:
> > On Fri, Sep 30, 2005 at 03:37:51PM +0200, Garth N. Wells wrote:
> > > With version 1.3.24 of SWIG, I can compile without fatal errors. Running
> > > test.sh, I'm getting a similar error to what Anders has been seeing,
> > >
> > > Traceback (most recent call last):
> > > File "swigtest.py", line 1, in ?
> > > import dolfin
> > > File
> > >
> "/usr/local/garth/fenics/dolfin/cvs/dolfin/src/demo/scripting/pydolfin/dolfin.py",
> > > line
> > > import _dolfin
> > > ImportError:
> > >
> /usr/local/garth/fenics/dolfin/cvs/dolfin/src/demo/scripting/pydolfin/_dolfin.so:
> > > ymbol: _ZN6dolfin12EdgeIteratorC1ERKNS_4NodeE
> > >
> > >
> > > Garth
> > >
> >
> > Ok, that's a much more reasonable error. I don't think we have sorted
> > linking very well in DOLFIN yet, and I guess it shows up here when
> > dealing with shared libraries. GCC wants libraries listed in order of
> > dependence, but the way we've solved this is just to repeat the
> > libraries several times until GCC is happy.
>
> That might be true, but the problem with the missing symbol (here
> _ZN6dolfin12EdgeIteratorC1ERKNS_4NodeE) was simpler than that --- this
> function was simply not implemented in EdgeIterator.cpp... I think
> this is fixed now.
The swig test script is working fine now.
Garth
>
> > At one point I got a similar error to yours on AffineMap::cell(). The
> > way I solved it was to repeat the libraries once more:
> >
> > $(CXX) -shared $< $(LFLAGS) -o $@ $(LFLAGS)
> >
> > This is obviously not a robust solution, and we should try to do the
> > right thing instead. I'll try to find a better solution.
>
> Another thing to think about (we discussed it earlier I think) is if
> we should not do a manual "install" in $toplevel/lib and
> $toplevel/include during make. Maybe to compile the demos, one should
> need to do a proper make install? Then we can cleanup all Makefiles
> and remove ../../ etc before dolfin-config.
>
> And then PyDOLFIN would also need to be built against a proper
> install.
>
> Also, perhaps the PyDOLFIN interface could go in src/pydolfin or
> src/swig (or something similar). Only the demo script needs to be
> under src/demo.
>
> A 'make install' of DOLFIN would then install both the C++ library and
> the Python bindings. Then some of the demos in src/demo could be
> C++ and some Python.
>
> /Anders
>
> _______________________________________________
> DOLFIN-dev mailing list
> DOLFIN-dev@xxxxxxxxxx
> http://www.fenics.org/cgi-bin/mailman/listinfo/dolfin-dev
>
Follow ups
References