[gecode-users] Problem linking Gecode 2.0.1 libreries

Mikael Zayenz Lagerkvist zayenz at gmail.com
Thu Feb 28 16:33:30 CET 2008


Hi,

In addition to Guido's comments, you should be aware that the
SizeOptions class is defined in the support files in the examples
directory. These are not in the library files. To use the examle
support, you must also link it to the following object files:
    examples/support.o
    examples/timer.o
    examples/support/example.o
    examples/support/options.o

Cheers,
Mikael Lagerkvist

On Thu, Feb 28, 2008 at 4:16 PM, Raffaele Cipriano
<cipriano at dimi.uniud.it> wrote:
> Dear GECODE developers and users,
> I have sucessfully installed GECODE 2.0.1 on my PC (cygwin on Windows XP
> 32bit), and I'm trying to compile an example, the queens.cc file...
> I have some problems linking the libraries (compiling the file is ok).
> I've also installed GECODE 2.0.1 on a cluster x86_64  with Linux CentOS
> v.4.3 and  2.6.9-34.ELsmp CentOS Kernel, and I get the same problem.
>
>  I get this message
>
> make -k all
> Building target: Queens.exe
> Invoking: GCC C++ Linker
> g++ -L"C:\Programmi\gecode-2.0.1" -o"Queens.exe"  ./queens.o
> -lgecodeminimodel -lgecodeint -lgecodekernel -lgecodesupport -lgecodesearch
> ./queens.o: In function `main':
> /cygdrive/c/Programmi/gecode-1.3.1/QueensGecode2/Debug/../queens.cc:125:
> undefined reference to `SizeOptions::SizeOptions(char const*)'
> /cygdrive/c/Programmi/gecode-1.3.1/QueensGecode2/Debug/../queens.cc:135:
> undefined reference to `SizeOptions::parse(int&, char**)'
> ./queens.o: In function
> `_ZN6Gecode7Support6PQueueIPNS_4Iter6Ranges4Virt8IteratorENS4_9NaryUnion15RangeUnionOrderEED1Ev':
> /cygdrive/c/Programmi/gecode-1.3.1/QueensGecode2/Debug/../queens.cc:(.text$_ZN11SizeOptionsD1Ev[SizeOptions::~SizeOptions()]+0xb):
> undefined reference to `vtable for SizeOptions'
> /cygdrive/c/Programmi/gecode-1.3.1/QueensGecode2/Debug/../queens.cc:(.text$_ZN7OptionsD2Ev[Options::~Options()]+0x3d):
> undefined reference to `vtable for Options'
> ./queens.o: In function `main':
> /cygdrive/c/Programmi/gecode-1.3.1/QueensGecode2/Debug/../queens.cc:124:
> undefined reference to `StringOption::~StringOption()'
> /cygdrive/c/Programmi/gecode-1.3.1/QueensGecode2/Debug/../queens.cc:124:
> undefined reference to `StringOption::~StringOption()'
> /cygdrive/c/Programmi/gecode-1.3.1/QueensGecode2/Debug/../queens.cc:137:
> undefined reference to `StringOption::~StringOption()'
> /cygdrive/c/Programmi/gecode-1.3.1/QueensGecode2/Debug/../queens.cc:137:
> undefined reference to `StringOption::~StringOption()'
> /cygdrive/c/Programmi/gecode-1.3.1/QueensGecode2/Debug/../queens.cc:137:
> undefined reference to `StringOption::~StringOption()'
> ./queens.o:/cygdrive/c/Programmi/gecode-1.3.1/QueensGecode2/Debug/../queens.cc:138:
> more undefined references to `StringOption::~StringOption()' follow
> ./queens.o: In function
> `_ZN6Gecode7Support6PQueueIPNS_4Iter6Ranges4Virt8IteratorENS4_9NaryUnion15RangeUnionOrderEED1Ev':
> /cygdrive/c/Programmi/gecode-1.3.1/QueensGecode2/Debug/../queens.cc:(.text$_ZN17UnsignedIntOptionD1Ev[UnsignedIntOption::~UnsignedIntOption()]+0xb):
> undefined reference to `vtable for UnsignedIntOption'
> /cygdrive/c/Programmi/gecode-1.3.1/QueensGecode2/Debug/../queens.cc:(.text$_ZN7Options11propagationEiPKcS1_[Options::propagation(int,
> char const*, char const*)]+0x25): undefined reference to
> `StringOption::add(int, char const*, char const*)'
> ./queens.o: In function `_GLOBAL__D_main':
> /cygdrive/c/Programmi/gecode-1.3.1/QueensGecode2/Debug/../queens.cc:80:
> undefined reference to `am(double*, int)'
> /cygdrive/c/Programmi/gecode-1.3.1/QueensGecode2/Debug/../queens.cc:80:
> undefined reference to `dev(double*, int)'
> collect2: ld returned 1 exit status
> make: *** [Queens.exe] Error 1
> make: Target `all' not remade because of errors.
> Build complete for project QueensGecode2
>
> I'm sure that the libraries are correctly referred (if I don't use one
> or more  -l<library> option I get a lot of undefined references)..
> It seems there's some trouble with the class Options or SizeOptions and
> with the distinct contraint (line 80 is  distinct(this, q, opt.icl());  )
>
>
> Could you help me?
>
> Thank you
>
> Raffaele Cipriano
>
> _______________________________________________
> Gecode users mailing list
> users at gecode.org
> https://www.gecode.org/mailman/listinfo/gecode-users
>



-- 
Mikael Zayenz Lagerkvist, http://www.ict.kth.se/~zayenz/




More information about the gecode-users mailing list