Closed MaddTheSane closed 6 years ago
I can't test this at the moment, so I'l start voicing some random guesses...
Is the Boost installed via MacPorts built for C++11 (using the newer C++ standard library, libc++
, instead of the older libstdc++
?
I would have assumed that this is the default for current systems, but maybe you are using an older system? If that's the case, this might be relevant: https://trac.macports.org/wiki/LibcxxOnOlderSystems
I'm on High Sierra. And Boost is linking/using libc++
There's also this warning that pops up. It's probably related:
In file included from /Users/cwbetts/makestuff/Retro68/Retro68/Rez/RezLexer.cc:3:
In file included from /opt/local/include/boost/wave.hpp:21:
In file included from /opt/local/include/boost/wave/cpp_context.hpp:38:
/opt/local/include/boost/wave/util/cpp_macromap.hpp:585:69: warning: unused typedef 'iterator_type' [-Wunused-local-typedef]
typedef unput_queue_iterator<IteratorT, token_type, ContainerT> iterator_type;
^
I hit this problem as well on El Capitain with Macports. I then tried building Boost 1.65 from source (1.66 doesn't work with my cmake version), with the options for linking to libc++
, and again it gives the same error as @MaddTheSane reported about the missing symbol. It looks to me like maybe a template wasn't instantiated, although I do seem to see that exact symbol in the Boost Wave dynamic object.
I tried compiling on Ubuntu 14, using Boost 1.54 (or was it 1.45? I tried a few versions...). It finishes compiling Rez, and after making a minor change in Elf2Mac/Section.cc:75
, Elf2Mac builds and it gets stuck building LaunchAPPL. The problem looks related to changes in the Boost API. I compiled Boost 1.66 from source on Ubuntu, and now it's back to failed linking of Rez with the same old error cpp_iterator.hpp:1379: undefined reference to boost::wave::grammars::cpp_grammar_gen<boost::wave::cpplexer::lex_iterator<...
@autc04 Which version of Boost have you been using? It looks like the current Homebrew version is 1.66, but maybe you still had an older one when developing this? I can try compiling whatever version you have.
Thanks for developing this, I'm really looking forward to using it!
I just had a successful build of Retro68k on Ubuntu, including the samples for 68k. I built Boost 1.59 as follows, after downloading, expanding, and changing to the resulting directory:
./bootstrap.sh
sudo ./b2 --with=all cxxflags="-std=c++11" --target=shared,static install
I'm not sure whether the difference was the Boost version, or the --target=shared,static
and --with=all
flags which I had not used previously. I'll try this approach in OSX another day.
I'm currently building on my Ubuntu 17.10 box with gcc 7.2.0 and boost 1.62 installed from the Ubuntu packages, and on macOS 10.13.3 with Apple clang-900.0.39.2 (Xcode 9.2) and boost 1.66 installed from the Homebrew binary package.
It looks like whatever was causing the issue has been fixed as of May 12, 2018. At least on MacPorts (using Boost 1.66.0_3).
Thanks!
As I've never reproduced this (I'm using homebrew, not MacPorts), I'm closing this for now.
If anyone is still having problems, feel free to reopen this or start a new issue.
I'm having issues trying to link the Rez executable:
Both Bison and Boost are installed via MacPorts, with Bison being version 3.0.4, and Boost is version 1.65.1 (1.65.1_1 as reported by MacPorts).