[gecode-users] Setup problems with 4.3.0 on OS X

Amnon David amnon.david at gmail.com
Thu Oct 16 10:53:27 CEST 2014


Perfect. Worked like a charm :)

Thanks a lot,

Amnon


On Thu, Oct 16, 2014 at 5:58 AM, Guido Tack <tack at gecode.org> wrote:

> Hi,
>
> this seems to be (yet another) problem with the two different standard C++
> libraries on Mac OS X.  When using the binary package, the following should
> work:
>
> g++ -F/Library/Frameworks -stdlib=libstdc++ -o money money.cpp
> -framework gecode
>
> (tested with the same configuration as yours)
>
> I'm not sure what happens in your second example, where cmake doesn't find
> Qt.  In that case it should actually set (or unset) a preprocessor macro so
> that e.g. the driver does not contain any reference to Qt/Gist.  I'll have
> to check that.
>
> Cheers,
> Guido
>
> On 16 Oct 2014, at 9:20 am, Amnon David <amnon.david at gmail.com> wrote:
>
> Hello,
>
> I'm trying to compile examples from Gecode 4.3.0 on a Mac OS X (Mavericks
> 10.9.5) with  g++ (Apple LLVM version 6.0 (clang-600.0.51) (based on LLVM
> 3.5svn) Target: x86_64-apple-darwin13.4.0).
>
> I started with the simplest route, i.e download the 4.3.0 dmg file which
> according to the site contains everything needed (including Qt libs).
>
> Then, following the 'Modeling and Programming with Gecode' installation
> instructions for Apple Mac OS issued a:
>
>  g++ -O3 -c money.cpp
>
> so far, so good. Followed this with a
>
> g++ -framework gecode -o money money.cpp			
>
> At this point the linker got angry and threw this at me:
>
>  -----------------
>
> Undefined symbols for architecture x86_64:
>
>   "Gecode::Gist::TextOutput::TextOutput(std::__1::basic_string<char,
> std::__1::char_traits<char>, std::__1::allocator<char> > const&)",
> referenced from:
>
>       void Gecode::Driver::ScriptBase<Gecode::Space>::runMeta<Money,
> Gecode::DFS, Gecode::Options, Gecode::Driver::EngineToMeta>(Gecode::Options
> const&, Money*) in money.o
>
>       void Gecode::Driver::ScriptBase<Gecode::Space>::runMeta<Money,
> Gecode::DFS, Gecode::Options, Gecode::RBS>(Gecode::Options const&, Money*)
> in money.o
>
>   "Gecode::Driver::stop(Gecode::Support::Timer&,
> std::__1::basic_ostream<char, std::__1::char_traits<char> >&)", referenced
> from:
>
>       void Gecode::Driver::ScriptBase<Gecode::Space>::runMeta<Money,
> Gecode::DFS, Gecode::Options, Gecode::Driver::EngineToMeta>(Gecode::Options
> const&, Money*) in money.o
>
>       void Gecode::Driver::ScriptBase<Gecode::Space>::runMeta<Money,
> Gecode::DFS, Gecode::Options, Gecode::RBS>(Gecode::Options const&, Money*)
> in money.o
>
>   "Gecode::branch(Gecode::Home, Gecode::IntVarArgs const&,
> Gecode::IntVarBranch, Gecode::IntValBranch, bool (*)(Gecode::Space const&,
> Gecode::IntVar, int), void (*)(Gecode::Space const&, Gecode::BrancherHandle
> const&, unsigned int, Gecode::IntVar, int, int const&,
> std::__1::basic_ostream<char, std::__1::char_traits<char> >&))", referenced
> from:
>
>       Money::Money(Gecode::Options const&) in money.o
>
> ld: symbol(s) not found for architecture x86_64
>
> -----------------
>
> Suspecting this is Qt related, I tried various things including compiling
> from XCode but to no avail, so at this point decided to try building it
> from the sources.
>
> At first I tried the ./configure, make path but after compiling a few
> files this failed with compilation error due to not finding some header
> file of Qt (I don't recall which now), though I have the latest Qt SDK
> installed.
>
> So I decided to try the cmake route. Here, the compilation completed with
> no errors. I then ollowed the last thread about problems compiling 4.3.0 on
> OS/X and used the following to link:
>
> g++ -o money money.o -L/Users/amnondavid/Downloads/gecode-4.3.0/ -O3  -lgecodeflatzinc -lgecodedriver  -lgecodesearch -lgecodeminimodel -lgecodeset -lgecodefloat -lgecodeint -lgecodekernel -lgecodesupport
> but again, received a set of linking errors starting with:
>
>   "Gecode::Gist::Comparator::~Comparator()", referenced from:
>
>       void Gecode::Driver::ScriptBase<Gecode::Space>::runMeta<Money, Gecode::DFS, Gecode::Options, Gecode::Driver::EngineToMeta>(Gecode::Options const&, Money*) in money.o
>
>       void Gecode::Driver::ScriptBase<Gecode::Space>::runMeta<Money, Gecode::DFS, Gecode::Options, Gecode::RBS>(Gecode::Options const&, Money*) in money.o
>
>       Gecode::Gist::VarComparator<Money>::~VarComparator() in money.o
>
>       non-virtual thunk to Gecode::Gist::VarComparator<Money>::~VarComparator() in money.o
>
>       Gecode::Gist::VarComparator<Money>::~VarComparator() in money.o
>
>       non-virtual thunk to Gecode::Gist::VarComparator<Money>::~VarComparator() in money.o
>
>   "Gecode::Gist::TextOutput::init()", referenced from:
>
>       Gecode::Gist::VarComparator<Money>::compare(Gecode::Space const&, Gecode::Space const&) in money.o
>
>       Gecode::Gist::Print<Money>::inspect(Gecode::Space const&) in money.o
>
> I figured what is needed is adding -lgecodegist, but looking at the
> generated libraries, I noticed the cmake process didn't generate it. Again,
> I assume due to not finding Qt (although I have the libraries installed).
>
> Having installed Gecode on my Mac a couple of years ago and doing some
> cool things with it , I'd like to get the latest version, though instead of
> spending a few more hours (or days) tracking this down, perhaps one of the
> gurus here could solve it in 5 minutes...
>
> Thanks,
>
> Amnon
>
>
>
> _______________________________________________
> Gecode users mailing list
> users at gecode.org
> https://www.gecode.org/mailman/listinfo/gecode-users
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.gecode.org/pipermail/users/attachments/20141016/9f9be814/attachment.html>


More information about the users mailing list