iOS5结构体编译严格

问题描述:今天二罗升级iOS SDK5,发现Monster不能编译了。具体报错信息如下:

variable length array of non-POD element type 'b2Vec2'

问题分析:错误指向的是cocos2d里一个结构体数组定义,如下:

b2Vec2 vertices[vertexCount];

问题解决:把其改成指针形式,如下:

b2Vec2 *vertices = new b2Vec2[vertexCount];

搞定了。

iOS SDK5升级类库问题

问题描述:今天小新升级iOS SDK5,发现Stupid不能编译了。具体报错信息如下:

Ld /Users/terrence/Library/Developer/Xcode/DerivedData/FSStupid-btpugnuitaisoebkwchzpplpvjuq/Build/Products/Debug-iphonesimulator/FSStupid.app/FSStupid normal i386
    cd "/Users/terrence/Desktop/FSStupid 10.14 2"
    setenv MACOSX_DEPLOYMENT_TARGET 10.6
    setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk -L/Users/terrence/Library/Developer/Xcode/DerivedData/FSStupid-btpugnuitaisoebkwchzpplpvjuq/Build/Products/Debug-iphonesimulator "-L/Users/terrence/Desktop/FSStupid 10.14 2/FSStupid/WeiboEngine" "-L/Users/terrence/Desktop/FSStupid 10.14 2/FSStupid/WeiboEngine/Libraries & Headers" "-L/Users/terrence/Desktop/FSStupid 10.14 2/FSStupid/WeiboEngine/WeiboEngine" -F/Users/terrence/Library/Developer/Xcode/DerivedData/FSStupid-btpugnuitaisoebkwchzpplpvjuq/Build/Products/Debug-iphonesimulator -filelist /Users/terrence/Library/Developer/Xcode/DerivedData/FSStupid-btpugnuitaisoebkwchzpplpvjuq/Build/Intermediates/FSStupid.build/Debug-iphonesimulator/FSStupid.build/Objects-normal/i386/FSStupid.LinkFileList -mmacosx-version-min=10.6 -Xlinker -objc_abi_version -Xlinker 2 -Xlinker -no_implicit_dylibs -D__IPHONE_OS_VERSION_MIN_REQUIRED=30100 -framework CoreAudio -framework AudioToolbox -framework StoreKit -lz.1.2.3 -framework MessageUI -lsqlite3 -licucore -framework SystemConfiguration -framework MobileCoreServices -framework Security -framework CFNetwork -framework MediaPlayer -framework AVFoundation -framework UIKit -framework Foundation -framework CoreGraphics -lOAuth -o /Users/terrence/Library/Developer/Xcode/DerivedData/FSStupid-btpugnuitaisoebkwchzpplpvjuq/Build/Products/Debug-iphonesimulator/FSStupid.app/FSStupid

ld: library not found for -lz.1.2.3
Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang failed with exit code 1

问题分析:看来是找不到类库的问题,lz.1.2.3对应的是libz.1.2.3.dylib。而/Developer/Platforms/iPhoneOS.platform/DeviceSupport/Latest/Symbols/usr/lib目录下只有libz.1.2.5.dylib。

问题解决:在project设置里重新引到新版本的类库,一切ok了。