Tag: g ++

应用程序在iOS 6上崩溃:找不到符号:___sync_fetch_and_add_4

我有一个适用于iOS4和iOS5的应用程序。 它使用针对ARM的zeromq库的静态编译版本。 苹果否认我的申请,因为他们声称在iOS 6下崩溃(还没有发布..wth?) 使用iOS 6 GM进行尝试后,我可以确认它在初始化ZeroMQ套接字时会崩溃。 这是崩溃消息: dyld: lazy symbol binding failed: Symbol not found: ___sync_fetch_and_add_4 Referenced from: /var/mobile/Applications/00EDEEDA-0068-4061-9188-01D627F9A6D6/OpenAir.app/OpenAir Expected in: /usr/lib/libSystem.B.dylib dyld: Symbol not found: ___sync_fetch_and_add_4 Referenced from: /var/mobile/Applications/00EDEEDA-0068-4061-9188-01D627F9A6D6/OpenAir.app/OpenAir Expected in: /usr/lib/libSystem.B.dylib 我明白__sync_fetch_add_4符号是一个编译器primefaces内置。 我知道ZeroMQ使用互斥体进行内部locking。 我一直在到处search,试图找出iOS6中可能导致这些符号不存在的变化。 使用Xcode 4.5和iOS6 GM,库甚至不会编译相同types的消息: Undefined symbols for architecture armv7: "___sync_fetch_and_add_4", referenced from: zmq::socket_base_t::unregister_session(std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> > […]