Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build issues #232

Open
burkhardm opened this issue Aug 27, 2013 · 6 comments
Open

build issues #232

burkhardm opened this issue Aug 27, 2013 · 6 comments

Comments

@burkhardm
Copy link

Thank you very much for your efforts to publish, extend and maintain the source code of Planetary.

For a start, what Xcode, iOS SDK, architecture and Cinder version is required to successfully build and run Planetary?

I'm having issues to build Planetary with Xcode 4.6.3, iOS 6.1, armv7 armv7s and Cinder 0.8.5. I also tried Cinder 0.8.4 and 0.8.3. In the end I always get a link error "Undefined symbols for architecture armv7" or "Undefined symbols for architecture armv7s". For example the Flurry lib is missing armv7s support. See screenshot attached.
link_error

@RandomEtc
Copy link
Collaborator

Hi @burkhardm - I confess that I haven't had a chance to compile Planetary since the last release, so it is very much presented as-is. I hope to find a moment soon, perhaps tonight, to get it up and running myself so I can better support curious people like you.

It was last compiled against the current master of https://github.com/bloomtime/Cinder with the XCode that was current at that time. I believe all the important settings are checked-in, but of course it's a constant battle to keep XCode projects current.

It may just be that the Flurry analytics stuff needs updating. I would also be OK with removing it from development builds with some #ifdefs.

Let me know if you try anything else - and thanks for your early interest! Hope to get this smoothed out soon.

@ChristopherDrum
Copy link

Firstly, a big thanks for the code release and congratulations on having your code become part of the Smithsonian. I think that's really incredible.

For the record, I am also having issues with building Planetary. This is with checking out the latest Planetary and Cinder 0.8.5, iOS 5.1 and 6.1, Xcode 4.6.2.

  • Home directories with a hyphen in the name do not work with the build setting you require of CINDER_PATH_(username)
  • Cinder requires libc++ as the C++ standard library, but the default compiler for Planetary (LLVM GCC 4.2) does not seem to allow this option to be set in Xcode. Changing the compiler and setting this to libc++ seems to work.
  • Other errors seem Cinder-specific, however Cinder builds successfully on its own so perhaps there is something else in the Planetary compiler settings I haven't noticed yet?
    • For example, cinder's URL.h "UrlLoadExc" function complains about the definition being too "lax" (adding a simple destructor quieted that).
    • cinder's Texture.h complains about "No matching function for call to 'make_shared' ".

As for @burkhardm, Flurry is relatively notorious for that error message. Updating the Flurry library is 99% likely necessary. I see in my Flurry dev account that their library is up to version 4.2.3 where the .h file in Planetary is at 2.8.3.

@burkhardm
Copy link
Author

Hi @RandomEtc, thank you for your prompt reply. I finally figured out what was missing for building Planetary.

The following settings were required for building Planetary with Xcode 4.6.3 and Cinder 0.8.5:

  1. Menu > Editor > Validate Settings > Update Settings (adds C++ Build Settings)
  2. Project > Targets > Planetary
  3. Build Settings > Architectures > Standard (armv7, armv7s)
  4. Build Settings > Build Active Architecture Only > No
  5. Build Settings > Valid Architectures > armv7
  6. Build Settings > iOS Deployment Target > iOS 5.0 (required for libc++)
  7. Build Settings > C++ Language Dialect > C++11
  8. Build Settings > C++ Standard Library > libc++
  9. Build Settings > Enable C++ Exceptions > Yes
  10. Build Settings > define CINDER_PATH_username
  11. Build Phases > Link Binary With Libraries > Add MobileCoreServices.framework
  12. Build Phases > Link Binary With Libraries > Add ImageIO.framework

@ChristopherDrum: Surprisingly, I didn't have to update the Flurry library by setting Valid Architectures to armv7. However, I had to comment out some older touch routines in BloomScene.cpp and GestureRecognizer.h. Please note, that this will lead to updates in the submodules.

@jjg
Copy link

jjg commented Sep 18, 2013

Hi @burkhardm, thank you very much for this list!

I'm much closer to getting Planetary to build, but I'm still getting a few errors in GestureRecognizer.h. They are all "Semantic Issue", and an example is on line 54:

 No matching conversion for functional-style cast from 'std::vector<TouchEvent::Touch>' to 'cinder::app::TouchEvent'

@burkhardm
Copy link
Author

Hi @jjg, you are very welcome. Well, I had the same semantic issue. Seems like the TouchEvent class of Cinder has changed with the new version. So for a start, I commented out all code lines for touch handling in BloomScene.cpp and GestureRecognizer.h. After that you should be able to build the project.

However, when I started the application it still crashed with EXC_BAD_ACCESS. I didn't have the time to figure this one out, yet.

@jjg
Copy link

jjg commented Sep 30, 2013

Ah, thanks for the note on that @burkhardm.

I need to spend some heads-down time with our other iOS code soon so I'll schedule some time to play with this more after I've brushed up my iOS debugging skills :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants