pixelnerve / BlockOpenNI

A c++ wrapper for OpenNI.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Examples prior to multi-kinect fail to build on Xcode 3.2.6 OS X 10.6.7

jimmyharris opened this issue · comments

While Trying to compile BlockOpenNISkeleton I run across the following errors:\

$(CINDER_PATH)/blocks/BlockOpenNI/src/VOpenNIDevice.cpp:1693: error: no matching function for call to 'xn::Context::CreateProductionTree(xn::NodeInfo)'
$(CINDER_PATH)/blocks/BlockOpenNI/include/OpenNI/XnCppWrapper.h:4811: note: candidates are: XnStatus xn::Context::CreateProductionTree(xn::NodeInfo&)

This error occurs on lines 1713, 1733, and 1753 as well.

Also, there is an error regarding std::exception::exception() and not being able to pass a string to it.

 $(CINDER_PATH)/blocks/BlockOpenNI/src/VOpenNIDevice.cpp:1782: error: no matching function for call to 'std::exception::exception(const char*)'
 /Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/exception:59: note: candidates are: std::exception::exception()
 /Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/exception:57: note:                 std::exception::exception(const std::exception&)

I don't know if these are because you moved to Xcode 4 but I am currently unable to run xcode 4 on my primary development environment.

Any help is appreciated.

What openni version are you using?

OpenNI 1.1.0.41 .

Nite 1.3.1.5

Avin2's sensor kinect (5.0.1.32).

All of those are binary distributions.

I am using Xcode 4.02 and have the same errors while building BlockOpenNISkeleton (I've tried on older MacBook Pro and on new iMac with Intel Core i3 - so I guess hardware is not a problem)

I used http://kinecthesis.bakedmac.com/2011/01/11/installing-openni-kinect-drivers-and-nite-on-mac-os-x-10-6/ guide to install kinect stuff

and

marcinignac 28-Jan-2011 05:43 PM post on http://forum.libcinder.org/#Topic/23286000000584092 to run example

any ideas to solve that problem??

I have the same versions as jimmyharris

I have found the problem but not a specific solution. std::exception(const char *) is a windows specific extension of the C++ standard library. It is not apart of the C++ standard, and is not supported by gcc. I had to replace those lines with the DEBUG_MESSAGE macros present previously. This doesn't accomplish the same thing but it works decently well for my purposes.

OK
and what about the first error:
No matching function for call to 'xn::Context::CreateProductionTree(xn::NodeInfo)'

xn::CreateProductionTree wants a ref to an xn:NodeInfo object. I was never able to get this to compile properly so I had to roll back the multiple device support. My stable branch should. Compile on os x.

Hello,

First of all, thanks for all of your work on BlockOpenNI. I just finished my first project using a Kinect ( will post to Cinder forum once it is installed ) and since that project is done I thought it would be a good time to update.

After uninstalling all previous drivers and re-installing the most recent versions of Nite, OpenNI & SensorKinect on SnowLeopard, I'm seeing this exact same error. Compilation is halted because there is no method definition for "xnCreateProductionTree" that expects a single param. This method is being called four times in VOpenNIDevice.cpp with only the first parameter being supplied.

Thoughts? Work arounds?

Thanks,
~Jeremy

Thanks, That was the solution I came up with. I was commenting from my iPhone which made proper formatting challenging.