[gecode-users] compiling a new propagator

Gustavo Gutiérrez gutierrez.gustavo at uclouvain.be
Fri Aug 14 15:37:49 CEST 2009


On 14 Aug 2009, at 15:17, amina kemmar wrote:

> Hi,
> I have implemented a constraint named "Aminadistinct(Space& home,  
> const IntVarArgs& x, IntConLevel icl)", I considere just the value  
> consistency,
> so, I generate the following files:
>
> gecode/int/Aminadistinct.hh
> gecode/int/Aminadistinct.cpp
> gecode/int/AminaDistinct/val.hpp
>
> for the compilation, I modified the makefile, by adding these three  
> files to INTSRC0, INTHDR0 and SETBUILDDIRS.
>
> when I compile gecode :
> $make
> $make install
>
> no error obtained,
>
> but when I call Aminadistinct(...) through an example; i obtained an  
> error message after the second command:
>
> $g++ -I/usr/local/include/ -c example.cpp
> $g++ -L/usr/local/lib/ example.o -lgecodeint -lgecodesearch
>
> example.o: In function `example::example()':
> example.cpp:(.text._ZN6exampleC1Ev[example::example()]+0x1e5):  
> undefined reference to `Gecode::Aminadistinct(Gecode::Space&,  
> Gecode::VarArgArray<Gecode::IntVar> const&, Gecode::IntConLevel)'
> collect2: ld a retourné 1 code d'état d'exécution
>
> the question is how to compile a new propagator?
>


Are you sure you provide an implementation for:

Gecode::Aminadistinct(Gecode::Space&,  
Gecode::VarArgArray<Gecode::IntVar> const&, Gecode::IntConLevel)


The problem can also be the way you link your executable. I think the  
problem is that you didn't provide an implementation for it or you  
forgot to link the object file of the propagator when linking your  
example.

you can try:

$g++ -I/usr/local/include/ -c Aminadistinct.cpp -o Aminadistinct.o
$g++ -I/usr/local/include/ -c example.cpp
$g++ -L/usr/local/lib/ example Aminadistinct.o -lgecodeint - 
lgecodesearch


Regards,
Gustavo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.ps.uni-sb.de/pipermail/users/attachments/20090814/83fe11c9/attachment.htm>


More information about the gecode-users mailing list