在OS X 10.6下构建的Cocoa应用程序在OS X 10.7上崩溃

时间:2011-11-22 14:31:13

标签: c++ objective-c macos cocoa

我的Cocoa应用程序在Mac OS X 10.6上运行正常,但是如果我尝试在10.7下运行它,它会崩溃并显示以下堆栈跟踪:

Thread 5 Crashed:
0   libicucore.A.dylib              0x9a860a07 0x9a7df000 + 530951
1   libicucore.A.dylib              0x9a861959 0x9a7df000 + 534873
2   libicucore.A.dylib              0x9a7e26fc uloc_canonicalize + 38
3   libicucore.A.dylib              0x9a7e5179 uloc_minimizeSubtags + 71
4   libicucore.A.dylib              0x9a7e4dda icu::Calendar::setWeekData(icu::Locale const&, char const*, UErrorCode&) + 242
5   libicucore.A.dylib              0x9a7e4cd7 icu::Calendar::Calendar(icu::TimeZone*, icu::Locale const&, UErrorCode&) + 161
6   libicucore.A.dylib              0x9a7e2c73 icu::GregorianCalendar::GregorianCalendar(icu::Locale const&, UErrorCode&) + 49
7   libicucore.A.dylib              0x9a7e2248 icu::Calendar::createInstance(icu::TimeZone*, icu::Locale const&, UErrorCode&) + 762
8   libicucore.A.dylib              0x9a7dfa8a ucal_open + 352
9   com.apple.CoreFoundation        0x9b2eb41e __CFCalendarCreateUCalendar + 430
10  com.apple.CoreFoundation        0x9b2eb1a9 CFCalendarCreateWithIdentifier + 537

请告诉我,是否可以在不重建10.7下的申请的情况下解决问题?也许我应该以某种方式静态链接我使用的Cocoa库和框架?

请帮忙!

2 个答案:

答案 0 :(得分:1)

如果不重建整个程序,您可能需要检查某些库的版本。如果系统库从10.6更改为10.7,则可能需要更新某些呼叫。

我不知道您有哪些依赖项,但可能会尝试查看您的OSX 10.7是否有最新版本

编辑:我不知道包含对象日历的库是否是你构建的,但我会从查看它的依赖开始。

答案 1 :(得分:0)

实际上这个问题与NSLog类有关,由于某些愚蠢的原因,它在10.7中似乎是非线程安全的......