0

I get a bunch of warnings when I test with iOS 5.0 SDK on an iPhone 3G(app runs fine though). When I test on an iPhone 4 I don't get the warnings. It looks like it has something to do with armv6. First here are my settings and some info:

Xcode version: 4.2
IPhone model: iPhone 3G
SDK: Latest iOS(iOS 5.0)
Architectures: $(VALID_ARCHS)
Valid Architectures: armv6 armv7
iOS Deployment Target: iOS 3.1

Edit: I have two iPhone 3G's. One running iOS 3.1.3 and one running iOS 4.2.1. The warnings only happen on the one running 3.1.3.

Here are the first 6 warnings. There are 35 warnings in all that look very similar (can I suppress these?):

warning: Could not find object file "/var/tmp/AppleMBX/AppleMBX-48~174/AppleMBX.build/MBXGLEngine.build/Objects-normal/armv6/fb.o" - no debug information available for "/SourceCache/AppleMBX/AppleMBX-48/MBXGLEngine/fb.c".

warning: Could not find object file "/var/tmp/AppleMBX/AppleMBX-48~174/AppleMBX.build/MBXGLEngine.build/Objects-normal/armv6/get.o" - no debug information available for "/SourceCache/AppleMBX/AppleMBX-48/MBXGLEngine/get.c".

warning: Could not find object file "/var/tmp/AppleMBX/AppleMBX-48~174/AppleMBX.build/MBXGLEngine.build/Objects-normal/armv6/fog.o" - no debug information available for "/SourceCache/AppleMBX/AppleMBX-48/MBXGLEngine/fog.c".

warning: Could not find object file "/var/tmp/AppleMBX/AppleMBX-48~174/AppleMBX.build/MBXGLEngine.build/Objects-normal/armv6/mbxlite_mp.o" - no debug information available for "/SourceCache/AppleMBX/AppleMBX-48/MBXGLEngine/mbxlite_mp.c".

warning: Could not find object file "/var/tmp/AppleMBX/AppleMBX-48~174/AppleMBX.build/MBXGLEngine.build/Objects-normal/armv6/eglglue.o" - no debug information available for "/SourceCache/AppleMBX/AppleMBX-48/MBXGLEngine/eglglue.c".

warning: Could not find object file "/var/tmp/AppleMBX/AppleMBX-48~174/AppleMBX.build/MBXGLEngine.build/Objects-normal/armv6/drawtex.o" - no debug information available for "/SourceCache/AppleMBX/AppleMBX-48/MBXGLEngine/drawtex.c".

Community
  • 1
  • 1
Ryan
  • 5,883
  • 13
  • 56
  • 93
  • There's no such thing as an iPhone 3. Do you mean 3G, or 3GS? – edc1591 Mar 01 '12 at 18:34
  • you must mean 3gs, since 5 wont run on 3g – nycynik Mar 01 '12 at 18:44
  • i meant 3G. the deployment target is iOS 3.1 which I also added – Ryan Mar 01 '12 at 18:50
  • What iOS version does your iphone 3G has? I recommend setting ioS deployment target to 4.0 since more then 95% of iphone devices run it worldwide according to a recent research. – Raphael Ayres Mar 01 '12 at 18:56
  • Also, those warnings mean that your objects have not been compiled, thus, not generating object files (.o). It sure has something to do with the compiler on xcode and support to older ios versions. Also, dos it link to some static library or all sources are on the project? – Raphael Ayres Mar 01 '12 at 19:00
  • thanks for asking your first question. I actually have two iPhone 3G's. One running 3.1.3 and one running 4.2.1. I only get the warnings on the one running 3.1.3. Don't think I have any static libs - just using a handful of the frameworks available from within xcode. – Ryan Mar 01 '12 at 19:07
  • But the app works or crashes on the iphone running 3.1.3? My opinion is that you should abandon trying to compile to iOS under 4.0. This version marks a change of the name from iphoneOS to iOS. This may be passing the wrong parameter to the compiler, thus, generating the warnings, and not compiling the .c files. – Raphael Ayres Mar 01 '12 at 19:25
  • it works fine on the 3.1.3 device - i can't see anything wrong with the app. – Ryan Mar 01 '12 at 19:26
  • Is this using Automatic Reference Counting (ARC)? – Mick MacCallum Mar 02 '12 at 01:49
  • my app is 98% c++, no shared pointers – Ryan Mar 02 '12 at 02:53

2 Answers2

0

The problem here is the debugging symbols for your project are not stored inside your linked libraries, but in the compiled object files (.o files).

Now, in your development environment you probably have those files available, so you see no warnings, but when you move your project to some other device, the files are no longer there, however your libraries still have a reference to those object files (for debugging purposes).

What you want to do is strip tose debugging symbols out of your library (they're generated and attached to the symbol table of your binaries when you compile using the -g option).

Use the command strip -S binaryfile for each of the binary files in your project, after compiling.

Note: This will remove the debugging symbol table from those and you no longer will be able to see the symbols and information when debugging.

Kronuz
  • 158
  • 2
  • 5
0

It could be related to an image size max that was changed between iPhone 3 and 4.

"Concerning your question: each iOS device has some limits on how big a loaded texture can be. The iPhone can, up to (I think) model 3GS, only load textures with a maximum size of 1024x1024 pixels. The iPad and iPhone 4 can handle up to 2048x2048."

http://forum.sparrow-framework.org/topic/strange-bad-access-when-running-on-device

nycynik
  • 7,371
  • 8
  • 62
  • 87