Discussion of issues specific to mobile platforms such as iOS, Android, Symbian and Meego.
d000hg
Goblin
Posts: 257 Joined: Tue Sep 02, 2008 9:41 pm
x 1
Post
by d000hg » Fri May 04, 2012 11:25 am
Since I run XCode 3.2.6 I can't use the 1.8 project templates; I generated a 1.7 project and tweaked it to use the 1.8 libs and headers in my built 1.8 SDK, and tweaked IPHONE->IOS. Everything compiles fine but I get a few linker errors:
Code: Select all
"_inflateInit2_", referenced from:
_zzip_inflate_init in libzzip.a(file.o)
"_inflateEnd", referenced from:
_zzip_file_close in libzzip.a(file.o)
_png_read_destroy in libFreeImage.a(pngread.o)
_ZIPSetupEncode in libFreeImage.a(tif_zip.o)
_ZIPCleanup in libFreeImage.a(tif_zip.o)
_PixarLogCleanup in libFreeImage.a(tif_pixarlog.o)
"_inflateSync", referenced from:
_ZIPDecode in libFreeImage.a(tif_zip.o)
_PixarLogDecode in libFreeImage.a(tif_pixarlog.o)
"_inflate", referenced from:
_zzip_file_read in libzzip.a(file.o)
_png_read_row in libFreeImage.a(pngread.o)
_png_inflate in libFreeImage.a(pngrutil.o)
_png_read_finish_row in libFreeImage.a(pngrutil.o)
_ZIPDecode in libFreeImage.a(tif_zip.o)
_PixarLogDecode in libFreeImage.a(tif_pixarlog.o)
(maybe you meant: cstring=png_inflate logic error)
"_CGImageCreate", referenced from:
Ogre::EAGLWindow::copyContentsToMemory(Ogre::PixelBox const&, Ogre::RenderTarget::FrameBuffer)in libRenderSystem_GLESStatic.a(OgreEAGLWindow.o)
"_CGColorSpaceCreateDeviceRGB", referenced from:
Ogre::EAGLWindow::copyContentsToMemory(Ogre::PixelBox const&, Ogre::RenderTarget::FrameBuffer)in libRenderSystem_GLESStatic.a(OgreEAGLWindow.o)
"_CGDataProviderCreateWithData", referenced from:
Ogre::EAGLWindow::copyContentsToMemory(Ogre::PixelBox const&, Ogre::RenderTarget::FrameBuffer)in libRenderSystem_GLESStatic.a(OgreEAGLWindow.o)
"_CGBitmapContextGetData", referenced from:
Ogre::EAGLWindow::copyContentsToMemory(Ogre::PixelBox const&, Ogre::RenderTarget::FrameBuffer)in libRenderSystem_GLESStatic.a(OgreEAGLWindow.o)
"_inflateInit_", referenced from:
_png_create_read_struct_2 in libFreeImage.a(pngread.o)
_ZIPSetupDecode in libFreeImage.a(tif_zip.o)
_PixarLogSetupDecode in libFreeImage.a(tif_pixarlog.o)
"_inflateReset", referenced from:
_zzip_rewind in libzzip.a(file.o)
_png_reset_zstream in libFreeImage.a(png.o)
_png_inflate in libFreeImage.a(pngrutil.o)
_png_read_finish_row in libFreeImage.a(pngrutil.o)
_ZIPPreDecode in libFreeImage.a(tif_zip.o)
_PixarLogPreDecode in libFreeImage.a(tif_pixarlog.o)
"_CGImageRelease", referenced from:
Ogre::EAGLWindow::copyContentsToMemory(Ogre::PixelBox const&, Ogre::RenderTarget::FrameBuffer)in libRenderSystem_GLESStatic.a(OgreEAGLWindow.o)
"_CGContextDrawImage", referenced from:
Ogre::EAGLWindow::copyContentsToMemory(Ogre::PixelBox const&, Ogre::RenderTarget::FrameBuffer)in libRenderSystem_GLESStatic.a(OgreEAGLWindow.o)
ld: symbol(s) not found
collect2: ld returned 1 exit statusI should add that the SampleBrowser in the 1.8 project builds and runs just fine. Can anyone suggest what is wrong?
Last edited by d000hg on Fri May 04, 2012 6:29 pm, edited 1 time in total.
Brocan
Orc
Posts: 441 Joined: Tue Aug 01, 2006 1:43 am
Location: Spain!!
x 8
Post
by Brocan » Fri May 04, 2012 11:29 am
For inflate/deflate/etc... errors link against zlib or add -lz to your linker flags.
For _CG* errors add QuartzCore framework to the project.
Cheers!
d000hg
Goblin
Posts: 257 Joined: Tue Sep 02, 2008 9:41 pm
x 1
Post
by d000hg » Fri May 04, 2012 11:41 am
Both those things are already done - this is a working 1.7 project which I simply changed to point at 1.8 headers/libs. So I have all the frameworks already, and libzzlib is already added.
I found some similar issues here:
http://www.ogre3d.org/forums/viewtopic. ... 76#p422015 but I don't know why it would be working in 1.7 and not in 1.8, also I have more errors than they do.
Brocan
Orc
Posts: 441 Joined: Tue Aug 01, 2006 1:43 am
Location: Spain!!
x 8
Post
by Brocan » Fri May 04, 2012 11:45 am
Are 1.7 and 1.8 libs linked against same versions of zlib and quartz core?
d000hg
Goblin
Posts: 257 Joined: Tue Sep 02, 2008 9:41 pm
x 1
Post
by d000hg » Fri May 04, 2012 12:07 pm
Same QuartzCore. zlib versions are the ones from respective Ogre versions, I've no idea if they're the same. But the 1.8 SampleBrowser runs fine which I built from source.
d000hg
Goblin
Posts: 257 Joined: Tue Sep 02, 2008 9:41 pm
x 1
Post
by d000hg » Fri May 04, 2012 12:16 pm
Well I tried the suggestion of adding /usr/lib/libz.dylib to Other Linker Flags and this removed the libzzlib errors. But I would really like to understand why this is needed for 1.8 and not for 1.7... and I would really like to understand what this does especially since iOS doesn't support dynamic linking AFAIK.
[s]The other errors remain[/s]
Aha! Apparently in Ogre 1.8 we also need the CoreGraphics framework - again I don't know why and would love to understand!
masterfalcon
OGRE Retired Team Member
Posts: 4270 Joined: Sun Feb 25, 2007 4:56 am
Location: Bloomington, MN
x 126
Post
by masterfalcon » Fri May 04, 2012 2:30 pm
Dynamic linking is supported, but not for libraries that you compile. For example, all system frameworks are loaded dynamically.
d000hg
Goblin
Posts: 257 Joined: Tue Sep 02, 2008 9:41 pm
x 1
Post
by d000hg » Fri May 04, 2012 2:35 pm
Are you aware why I don't need zlib.dylib and CoreGraphics framework for Ogre 1.7 but I do for 1.8? Greater iOS functionality/APIs being used as 1.8 gets more mature on iOS for 1.8?
masterfalcon
OGRE Retired Team Member
Posts: 4270 Joined: Sun Feb 25, 2007 4:56 am
Location: Bloomington, MN
x 126
Post
by masterfalcon » Fri May 04, 2012 3:00 pm
Something like that. I don't recall exactly right now.