Author Topic: Building libpinproc/pinproctest under OS X Mavericks  (Read 1221 times)

jgeorge

  • Newbie
  • *
  • Posts: 1
    • View Profile
Building libpinproc/pinproctest under OS X Mavericks
« on: June 27, 2014, 08:41:14 PM »
Hi all,

Apologies for what might be a newbie question, but I'm just getting started with P-Roc and setting up a development environment on a Mac. I can see the documentation that says it's been done, so I know what I have should work, and I'm CLOSE, but i have one build issue I can't quite figure out.

I'm using the popular MacPorts utility to install prerequisite libraries rather than building and installing by hand. So far that actually works out pretty well (with one exception).

It looks like yaml-cpp switched to a new API after version 0.2.7, and libpinproc says it was tested with yaml-cpp 0.2.6, so rather than install yaml-cpp via MacPorts (which installs the "new API" 0.5.1) I download and build yaml-cpp 0.2.6 on my own.

With this single change, and a couple of additional -I and -L flags in the makefiles (because MacPorts uses /opt/local instead of /usr/local), pinprick and pinprocfw build fine. However, even making sure I'm pointing to yaml-cpp 0.2.6 I get a ton of errors trying to build pinproctest (see wall of text below).

I've looked around a bit both here and generically googling for yaml-cpp issues, but this is a package I admittedly don't have any real familiarity with. Any ideas on what I'm missing that's generating the issues below? I don't think I'm missing any other packages, and I don't have conflicting yaml-cpp libraries installed anywhere.

Any pointers anyone might have would me much appreciated! Ya got me on this one.

Cheers,

Joe


[ 30%] Built target pinproc
[ 50%] Built target pinprocfw
[ 60%] Building CXX object CMakeFiles/pinproctest.dir/examples/pinproctest/pinproctest.cpp.o
In file included from /Users/jgeorge/Documents/p-roc_software/libpinproc/examples/pinproctest/pinproctest.cpp:29:
In file included from /Users/jgeorge/Documents/p-roc_software/libpinproc/examples/pinproctest/pinproctest.h:47:
In file included from /usr/local/include/yaml-cpp/yaml.h:10:
In file included from /usr/local/include/yaml-cpp/node.h:11:
/usr/local/include/yaml-cpp/yaml-cpp/exceptions.h:156:41: error: no member named
      'null_mark' in 'YAML::Mark'
        : RepresentationException(Mark::null_mark(), ErrorMsg::INVALID_NODE) {}
                                  ~~~~~~^
/usr/local/include/yaml-cpp/yaml-cpp/exceptions.h:162:41: error: no member named
      'null_mark' in 'YAML::Mark'
        : RepresentationException(Mark::null_mark(), ErrorMsg::BAD_CONVERSION) {}
                                  ~~~~~~^
/usr/local/include/yaml-cpp/yaml-cpp/exceptions.h:175:35: error: no member named
      'null_mark' in 'YAML::Mark'
                : RepresentationException(Mark::null_mark(), ErrorMsg::BAD_DEREFERENCE) {}
                                          ~~~~~~^
/usr/local/include/yaml-cpp/yaml-cpp/exceptions.h:181:35: error: no member named
      'null_mark' in 'YAML::Mark'
                : RepresentationException(Mark::null_mark(), ErrorMsg::BAD_SUBSCRIPT) {}
                                          ~~~~~~^
/usr/local/include/yaml-cpp/yaml-cpp/exceptions.h:187:35: error: no member named
      'null_mark' in 'YAML::Mark'
                : RepresentationException(Mark::null_mark(), ErrorMsg::BAD_PUSHBACK) {}
                                          ~~~~~~^
/usr/local/include/yaml-cpp/yaml-cpp/exceptions.h:193:35: error: no member named
      'null_mark' in 'YAML::Mark'
                : RepresentationException(Mark::null_mark(), ErrorMsg::BAD_INSERT) {}
                                          ~~~~~~^
/usr/local/include/yaml-cpp/yaml-cpp/exceptions.h:199:21: error: no member named
      'null_mark' in 'YAML::Mark'
                : Exception(Mark::null_mark(), msg_) {}
                            ~~~~~~^
/usr/local/include/yaml-cpp/yaml-cpp/exceptions.h:204:36: error: no member named
      'null_mark' in 'YAML::Mark'
        BadFile(): Exception(Mark::null_mark(), ErrorMsg::BAD_FILE) {}
                             ~~~~~~^
In file included from /Users/jgeorge/Documents/p-roc_software/libpinproc/examples/pinproctest/pinproctest.cpp:29:
In file included from /Users/jgeorge/Documents/p-roc_software/libpinproc/examples/pinproctest/pinproctest.h:47:
In file included from /usr/local/include/yaml-cpp/yaml.h:13:
/usr/local/include/yaml-cpp/yaml-cpp/emitter.h:55:42: error: unknown type name
      '_Precision'
        Emitter& SetLocalPrecision(const _Precision& precision);
                                         ^
/usr/local/include/yaml-cpp/yaml-cpp/emitter.h:66:24: error: must use 'class' tag to refer
      to type 'Binary' in this scope
                Emitter& Write(const Binary& binary);
                                     ^
                                     class
/usr/local/include/yaml-cpp/emittermanip.h:135:17: note: class 'Binary' is hidden by a
      non-type declaration of 'Binary' here
        inline _Binary Binary(const char *data, std::size_t size) {
                       ^
In file included from /Users/jgeorge/Documents/p-roc_software/libpinproc/examples/pinproctest/pinproctest.cpp:29:
In file included from /Users/jgeorge/Documents/p-roc_software/libpinproc/examples/pinproctest/pinproctest.h:47:
In file included from /usr/local/include/yaml-cpp/yaml.h:13:
/usr/local/include/yaml-cpp/yaml-cpp/emitter.h:180:55: error: must use 'class' tag to
      refer to type 'Binary' in this scope
        inline Emitter& operator << (Emitter& emitter, const Binary& b) { return e...
                                                             ^
                                                             class
/usr/local/include/yaml-cpp/emittermanip.h:135:17: note: class 'Binary' is hidden by a
      non-type declaration of 'Binary' here
        inline _Binary Binary(const char *data, std::size_t size) {
                       ^
In file included from /Users/jgeorge/Documents/p-roc_software/libpinproc/examples/pinproctest/pinproctest.cpp:29:
In file included from /Users/jgeorge/Documents/p-roc_software/libpinproc/examples/pinproctest/pinproctest.h:47:
In file included from /usr/local/include/yaml-cpp/yaml.h:13:
/usr/local/include/yaml-cpp/yaml-cpp/emitter.h:204:52: error: unknown type name
      '_Precision'
    inline Emitter& operator << (Emitter& emitter, _Precision precision) {
                                                   ^
/Users/jgeorge/Documents/p-roc_software/libpinproc/examples/pinproctest/pinproctest.cpp:53:20: error:
      no member named 'GetNextDocument' in 'YAML::Parser'
            parser.GetNextDocument(yamlDoc);
            ~~~~~~ ^
/Users/jgeorge/Documents/p-roc_software/libpinproc/examples/pinproctest/pinproctest.cpp:231:21: warning:
      8 enumeration values not handled in switch: 'kPREventTypeInvalid',
      'kPREventTypeDMDFrameDisplayed', 'kPREventTypeBurstSwitchOpen'... [-Wswitch]
            switch (event->type)
                    ^
1 warning and 13 errors generated.
make[2]: *** [CMakeFiles/pinproctest.dir/examples/pinproctest/pinproctest.cpp.o] Error 1
make[1]: *** [CMakeFiles/pinproctest.dir/all] Error 2
make: *** [all] Error 2



Gerry Stellenberg

  • Administrator
  • *****
  • Posts: 2399
    • View Profile
    • PinballControllers.com
Re: Building libpinproc/pinproctest under OS X Mavericks
« Reply #1 on: June 28, 2014, 11:34:30 AM »
No ideas come to mind.

yaml-cpp is used only for the example program pinproctest.  If you'll be using the python environment, you don't really even need yaml-cpp; so you could remove pinproctest from the target list in your CMakeLists.txt and move on.

- Gerry