[PPL-devel] PPL usage with cygwin for "Abstract Model Interpretation"

Roberto Bagnara bagnara at cs.unipr.it
Fri Feb 3 13:20:06 CET 2006


Ernst Sassen wrote:
 > I am currently working on my master thesis: "Abstract Model
 > Interpretation" that applies abstract interpretation on fomal models
 > of software systems.
 >
 > For implementing an abstract domain, I plan to use PPL for the
 > handling of Polyhedra. Actually, we plan on accessing PPL from our
 > Java code via a wrapper class in C++. Right now my problem is how to
 > inlcude the PPL classes in my C++ project.
 >
 > I am using a Windows XP System with cygwin. 'Make' and 'make
 > install' of the PPL source directory worked fine.  However now I am
 > unsure about how to actually include PPL classes (e.g. "Polyhedron")
 > in a C++ project and also could find no further instructions in the
 > user manual or the README and INSTALL files, provided.  Maybe you
 > can help me answering this question:
 >
 > - What is the intended usage of PPL? Should one just include
 > "ppl.hh" and the created libraries?  Right now, this yields error
 > messages like:"... undefined reference to
 > `Parma_Polyhedra_Library::Init::Init[in-charge]()' ...undefined
 > reference to `Parma_Polyhedra_Library::Init::~Init [in-charge]()' "
 > The libraries libppl.a, ..., were created by 'make install' and
 > should be accessible to g++. However, it seems the linker is unable
 > to find the used library functions.

Dear Ernst,

let us go with order: you are using PPL 0.8, right?  And you configured
the library without any particular option, like

$ cd ppl-0.8
$ ./configure
$ make
$ make install

Right?  If so, you have the include file in /usr/local/include
and the library files in /usr/local/lib.  To use the library,
you will have to put

#include <ppl.hh>

where appropriate in your source files.  Depending on your C++
compiler you may need to specify the

   -I/usr/local/include

compiler option.  To link your application, you need to
provide the options

   -lppl -lgmpxx -lgmp

to your linker and, possibly, also the

   -L/usr/local/include

option.

If you used the --prefix configure option of the PPL, i.e., you did

$ cd ppl-0.8
$ ./configure --prefix=/foo/baz
$ make
$ make install

then, in the above instructions, replace "/usr/local" by "/foo/baz".
You will find more information about configuring the library in the
README.configure file, which is at the top level of the PPL tree.
Please do not hesitate to come back to us if you need further
advice.
All the best,

     Roberto

P.S. We would be interested to know more about your application
      and about the techniques you will use to interface the PPL
      to Java.  By the way: this has already been done once
      (http://www.info.ucl.ac.be/~gobert/analyser/index.html).

-- 
Prof. Roberto Bagnara
Computer Science Group
Department of Mathematics, University of Parma, Italy
http://www.cs.unipr.it/~bagnara/
mailto:bagnara at cs.unipr.it



More information about the PPL-devel mailing list