开发者

Missing Library link error when doing Product > Build For Archiving in Xcode 4

I have an iPhone app that relies on two static libraries

When doing Project > Build For Running and then Project > Run there are no errors and the app runs as expected on my iPhone.

When doing Project > Build For Archiving I get a link error for one of the libraries but not for the other ld: library not found for -lConcordeLib

When I look on the file system at the created *.a files I see:

Release-iphoneos/ConcordeLib.build/Objects-normal/armv6/libConcordeLib.a

Release-iphoneos/ConcordeLib.build/Objects-normal/armv7/libConcordeLib.a

Release-iphoneos/QSoptLib.build/Objects-normal/armv6/libQSoptLib.a

Release-iphoneos/QSoptLib.build/Objects-normal/armv7/libQSoptLib.a

Release-iphoneos/libConcordeLib.a

开发者_Go百科 Release-iphoneos/libQSoptLib.a

in the DerivedData directory for the compile. This looks exactly like the files generated when doing the successful Project > Build For Running, which generates the same files under Debug-iphoneos.

I cleaned the Derived Data out, stopped and restarted XCode and still get the same error.


I carefully looked at the ld command and saw that it generated files under .../Build/Intermediates/NavConcorde.build/AdHoc-iphoneos/. The AdHoc profile did in fact not exist anymore, so it is not surprising that there was an error. I have not clue why this manifested itself as a link error though. The libraries under Debug and Release must have hung around from another compile.

Going to Product > Edit Scheme and setting the profile to use the existing Distribution Profile solved the link error.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜