Open russell-taylor opened 8 years ago
Are you trying the mac build instructions? There is a Mac homebrew tap
I tried doing the Homebrew approach, but Homebrew failed in the middle of fetching and building the dependencies. It failed with a permission denied and then cowardly refused to run sudo. That was as far down that path as I was willing to wander.
Looks like doing chown on /usr/local got the brew flowing again. Hopefully it will get the install finished and I can try out RenderManager on the mac and then do a pull request for the generalized code.
It then failed finding markdown, even though I installed macdown using brew.
After making me uninstall macports so that I could use homebrew, of course...
oh, you were using macports... I figured somebody still was using it somewhere ;)
@russell-taylor You shouldn't have to uninstall macports, but in that case, install Homebrew into a prefix other than /usr/local.
We may want to write some Macports port files for OSVR, but I'd rather leave that to someone else if possible.
Yeah, I overstated. It was more like it strongly recommended. I don't think we need Macports files. I think we're close even with the Linux compile except for the strange undefined symbol problem. With the homebrew path, it got stuck at not being able to find markdown.
shouldn't ever get "stuck" at not finding markdown - that's always just optional to make our readme files easier for people to read when we distribute binaries. If we have a find_package(Markdown REQUIRED)
somewhere that's definitely a bug
Okay, I created an issue on the Homebrew project with the build script log. Looking at it again, that seems to be the cause.
Still stuck on the standard build path by the undefined symbol. Tried a few things, but nothing got me around the issue.
It's not a Homebrew issue — it's because OSVR-Core checks the Boost version and the one provided is too new.
I will prepare a patch.
When I follow the Linux build instructions on a macbook air with the latest operating system, I get an undefined symbol error for operator = in jsoncpp. I include the output from the verbose make below. Explicitly setting the OSX architecture to x86_64 before building and installing jsoncpp does not help.
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -O2 -g -DNDEBUG -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk -dynamiclib -Wl,-headerpad_max_install_names -current_version 0.6.0 -o ../../../lib/libosvrCommon.0.6.dylib -install_name @rpath/libosvrCommon.0.dylib CMakeFiles/osvrCommon.dir/AddDevice.cpp.o CMakeFiles/osvrCommon.dir/AliasProcessor.cpp.o CMakeFiles/osvrCommon.dir/BaseDevice.cpp.o CMakeFiles/osvrCommon.dir/ClientContext.cpp.o CMakeFiles/osvrCommon.dir/ClientInterfaceFactory.cpp.o CMakeFiles/osvrCommon.dir/ClientInterface.cpp.o CMakeFiles/osvrCommon.dir/Common.cpp.o CMakeFiles/osvrCommon.dir/CommonComponent.cpp.o CMakeFiles/osvrCommon.dir/CreateDevice.cpp.o CMakeFiles/osvrCommon.dir/DeviceComponent.cpp.o CMakeFiles/osvrCommon.dir/DeviceWrapper.cpp.o CMakeFiles/osvrCommon.dir/DirectionComponent.cpp.o CMakeFiles/osvrCommon.dir/EyeTrackerComponent.cpp.o CMakeFiles/osvrCommon.dir/GeneralizedTransform.cpp.o CMakeFiles/osvrCommon.dir/GetEnvironmentVariable.cpp.o CMakeFiles/osvrCommon.dir/ImagingComponent.cpp.o CMakeFiles/osvrCommon.dir/IPCRingBuffer.cpp.o CMakeFiles/osvrCommon.dir/JSONTransformVisitor.cpp.o CMakeFiles/osvrCommon.dir/Location2DComponent.cpp.o CMakeFiles/osvrCommon.dir/LocomotionComponent.cpp.o CMakeFiles/osvrCommon.dir/MessageHandler.cpp.o CMakeFiles/osvrCommon.dir/MessageRegistration.cpp.o CMakeFiles/osvrCommon.dir/NetworkClassOfService.cpp.o CMakeFiles/osvrCommon.dir/NetworkingSupport.cpp.o CMakeFiles/osvrCommon.dir/NormalizeDeviceDescriptor.cpp.o CMakeFiles/osvrCommon.dir/OriginalSource.cpp.o CMakeFiles/osvrCommon.dir/ParseAlias.cpp.o CMakeFiles/osvrCommon.dir/PathElementTools.cpp.o CMakeFiles/osvrCommon.dir/PathElementTypes.cpp.o CMakeFiles/osvrCommon.dir/PathNode.cpp.o CMakeFiles/osvrCommon.dir/PathTree.cpp.o CMakeFiles/osvrCommon.dir/PathTreeObserver.cpp.o CMakeFiles/osvrCommon.dir/PathTreeOwner.cpp.o CMakeFiles/osvrCommon.dir/PathTreeSerialization.cpp.o CMakeFiles/osvrCommon.dir/ProcessDeviceDescriptor.cpp.o CMakeFiles/osvrCommon.dir/RawMessageType.cpp.o CMakeFiles/osvrCommon.dir/RawSenderType.cpp.o CMakeFiles/osvrCommon.dir/RegisteredStringMap.cpp.o CMakeFiles/osvrCommon.dir/ResolveFullTree.cpp.o CMakeFiles/osvrCommon.dir/ResolveTreeNode.cpp.o CMakeFiles/osvrCommon.dir/RouteContainer.cpp.o CMakeFiles/osvrCommon.dir/RoutingConstants.cpp.o CMakeFiles/osvrCommon.dir/RoutingKeys.cpp.o CMakeFiles/osvrCommon.dir/SystemComponent.cpp.o CMakeFiles/osvrCommon.dir/Tracing.cpp.o /usr/local/lib/libjsoncpp.a ../../../lib/libosvrUtil.0.6.dylib ../../../bin/libvrpnserver.a ../../../bin/libquat.a -lm /opt/local/lib/libusb-1.0.dylib -framework CoreFoundation -framework IOKit ../../../bin/libvrpn_atmel.a ../../../bin/libgpsnmea.a -Wl,-rpath,/Users/taylorr/build/OSVR-Core/lib Undefined symbols for architecture x86_64: "Json::Value::operator=(Json::Value const&)", referenced from: osvr::common::createJSONAlias(std::1::basic_string<char, std::__1::char_traits, std:: 1::allocator > const&, Json::Value const&) in AliasProcessor.cpp.o
osvr::common::convertRouteToAlias(Json::Value const&) in AliasProcessor.cpp.o
osvr::common::applyPriorityToAlias(Json::Value const&, unsigned char) in AliasProcessor.cpp.o
osvr::common::GeneralizedTransform::recompose(Json::Value) const in GeneralizedTransform.cpp.o
std::1::vector<Json::Value, std::1::allocator >::insert(std::1::wrap_iter<Json::Value const*>, Json::Value const&) in GeneralizedTransform.cpp.o
osvr::common::JSONTransformVisitor::JSONTransformVisitor(Json::Value const&) in JSONTransformVisitor.cpp.o
osvr::common::appendCurrentIface(Json::Value&, Json::Value&) in NormalizeDeviceDescriptor.cpp.o
...
ld: symbol(s) not found for architecture x86_64