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

Guido Tack tack at gecode.org
Thu Oct 16 04:58:00 CEST 2014


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/a66fc591/attachment.html>


More information about the users mailing list