link with other libraries

jordi poblet jordi.poblet at gmail.com
Mon Jul 24 09:35:13 CDT 2006


Barry and Satish,

Than you very much for your useful answers. I finally can compile the code
using both types of makefiles.

Best regards,

Jordi Poblet


On 7/21/06, Barry Smith <bsmith at mcs.anl.gov> wrote:
>
>
>    Jordi,
>
>      If you want to provide the rules to compile your code you
> can instead just include bmake/common/variables this sets the variables
> like ${PETSC_KSP_LIB} but you provide the rules for compiling.
>
>    Satish,
>
>     Do we have written down somewhere on the website for the two
> ways of using PETSc makefiles? There should be the directions (that only
> you know :-). Maybe in the FAQ?
>
>     Barry
>
>
> On Fri, 21 Jul 2006, jordi poblet wrote:
>
> > Satish,
> >
> > Thank you very much for your fast response. It has solved the problem
> with
> > including files and I can generate the object file for my class (
> myclass.o).
> > However, I suppose that with
> >
> > ex1: myclass.o chkopts
> >
> > -${CLINKER} -o ex1 myclass.o  ${MY_LIB} ${PETSC_KSP_LIB}
> >  ${RM} myclass.o
> > the makefile is trying to link a self executable program (ex1) and I
> > obtain the following error message:
> >
> > : undefined reference to `main'
> > (in myclass.cpp there is no main block, the class is used by main.cpp).
> >
> > I would like,
> >
> > 1-compile the class and obtain the file myclass.o (now I can do it with
> the
> > error shown above, but the file is at least generated) taking into
> account
> > the correct includes (from PETSc and from other libraries). I do not
> need
> > the libraries in this step
> > 2-compile all the other classes not using PETSc and obtain the other
> files
> > *.o
> > 3-link all the files *.o and myclass.o taking into account all the
> libraries
> >
> >
> > Thank you very much. Best regards,
> >
> >
> > Jordi Poblet
> >
> >
> > On 7/21/06, Satish Balay <balay at mcs.anl.gov> wrote:
> >>
> >> The basic form of a PETSc makefile is as follows:
> >>
> >> >>>>>>
> >> CFLAGS           =
> >> FFLAGS           =
> >> CPPFLAGS         =
> >> FPPFLAGS         =
> >> CLEANFILES       =
> >>
> >> include ${PETSC_DIR}/bmake/common/base
> >>
> >> ex1: ex1.o  chkopts
> >>         -${CLINKER} -o ex1 ex1.o  ${PETSC_KSP_LIB}
> >>         ${RM} ex1.o
> >> >>>>>>>>>>
> >>
> >>
> >> If you wish to specify additonal libraries - you can do it as:
> >>
> >>
> >> >>>>>>>
> >> MY_INC          = -I/my/include
> >> MY_LIB          = -L/my/lib -lmy
> >>
> >> CFLAGS           =
> >> FFLAGS           =
> >> CPPFLAGS         = ${MY_INC}
> >> FPPFLAGS         =
> >> CLEANFILES       =
> >>
> >> include ${PETSC_DIR}/bmake/common/base
> >>
> >> ex1: ex1.o  chkopts
> >>         -${CLINKER} -o ex1 ex1.o  ${MY_LIB} ${PETSC_KSP_LIB}
> >>         ${RM} ex1.o
> >> >>>>>>>>>
> >>
> >> Also - you should make sure this library is compiled with the same
> >> compilers as PETSc is compiled with.
> >>
> >> Satish
> >>
> >> On Fri, 21 Jul 2006, jordi poblet wrote:
> >>
> >> > Dear all,
> >> >
> >> > I would like to use PETSc within a finite element program (the main
> part
> >> is
> >> > written in C++). Some classes should use PETSc routines and routines
> >> from
> >> > other libraries. When compiling these classes, I have to include not
> >> only
> >> > the header files from PETSc (which in the examples of a single C or
> C++
> >> > files are included automatically with the sample makefiles provided
> in
> >> the
> >> > manual) but also header files from the other used libraries. Finally,
> I
> >> > would have also to link PETSc with other libraries at the same time.
> >> > I have tried to construct a makefile including 'by hand' the PETSc
> >> headers
> >> > but I have always problems. Could someone help me? Have you got
> makefile
> >> > examples for this situation (or similar)?
> >> >
> >> > The compilation options for the PETSc library that I have employed
> are:
> >> >
> >> > ./config/configure.py --with-mpi=0 --with-clanguage=c++
> >> > --with-scalar-type=complex
> >> >
> >> > tests and examples are passed correctly.
> >> >
> >> > I am running PETSc in linux machines.
> >> >
> >> >
> >> > Thank you in advance,
> >> >
> >> > Jordi Poblet
> >> >
> >>
> >>
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20060724/bbb58cbe/attachment.htm>


More information about the petsc-users mailing list