Ios 获得;未定义的架构符号arm64“;使用Objective-C框架构建Swift项目时出错
我正在使用Cisco的JabberGuest框架制作iOS应用程序。我按照他们的指示做了必要的调整。编译时,编译器返回几乎100个错误,都是Ios 获得;未定义的架构符号arm64“;使用Objective-C框架构建Swift项目时出错,ios,swift,objective-c,xcode,Ios,Swift,Objective C,Xcode,我正在使用Cisco的JabberGuest框架制作iOS应用程序。我按照他们的指示做了必要的调整。编译时,编译器返回几乎100个错误,都是未定义的符号。应用程序的核心是用Swift编写的 下面是错误日志的一部分: Undefined symbols for architecture arm64: "std::__1::recursive_mutex::recursive_mutex()", referenced from: csf::edge::Ip
未定义的符号
。应用程序的核心是用Swift编写的
下面是错误日志的一部分:
Undefined symbols for architecture arm64:
"std::__1::recursive_mutex::recursive_mutex()", referenced from:
csf::edge::IpInterfaceChangedEventFilter::IpInterfaceChangedEventFilter() in JabberGuest(IpInterfaceChangedEventFilter.o)
"std::__1::recursive_mutex::~recursive_mutex()", referenced from:
csf::edge::IpInterfaceChangedEventFilter::IpInterfaceChangedEventFilter() in JabberGuest(IpInterfaceChangedEventFilter.o)
csf::edge::IpInterfaceChangedEventFilter::~IpInterfaceChangedEventFilter() in JabberGuest(IpInterfaceChangedEventFilter.o)
csf::edge::IpInterfaceChangedEventFilter::~IpInterfaceChangedEventFilter() in JabberGuest(IpInterfaceChangedEventFilter.o)
"std::runtime_error::runtime_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
boost::regex_error::regex_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, boost::regex_constants::error_type, long) in JabberGuest(regex.o)
boost::regex_error::regex_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, boost::regex_constants::error_type, long) in JabberGuest(regex.o)
"std::__1::basic_streambuf<char, std::__1::char_traits<char> >::underflow()", referenced from:
vtable for boost::re_detail_106501::parser_buf<char, std::__1::char_traits<char> > in JabberGuest(instances.o)
"std::__1::basic_streambuf<char, std::__1::char_traits<char> >::pbackfail(int)", referenced from:
vtable for boost::re_detail_106501::parser_buf<char, std::__1::char_traits<char> > in JabberGuest(instances.o)
[...]
JCFCoreUtils::EncryptionUtils::privateKeyDecryptToFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, csf::SecureString const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) in JabberGuest(EncryptionUtils.o)
"std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::insert(std::__1::__wrap_iter<char const*>, char)", referenced from:
boost::re_detail_106501::basic_regex_creator<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::append_set(boost::re_detail_106501::basic_char_set<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, mpl_::bool_<false>*) in JabberGuest(instances.o)
"std::__1::basic_ostream<char, std::__1::char_traits<char> >::sentry::sentry(std::__1::basic_ostream<char, std::__1::char_traits<char> >&)", referenced from:
std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in JabberGuest(ObjectFoundry.o)
std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in JabberGuest(ObjcLibraryLoader.o)
std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in JabberGuest(FileUtils.o)
std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in JabberGuest(UnifiedFactory.o)
std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in JabberGuest(ServicesDispatcher.o)
std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in JabberGuest(Base64FamilyEncoder.o)
std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in JabberGuest(TaskDispatcher.o)
...
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
在构建设置中,我正确设置了框架搜索路径
,调试
和发布
的目标C桥接头
设置在正确的文件上,在armv7 arm64
上添加了有效的架构
,在标准Achritectures(arm64 armv7)
上设置了架构。所有必要的库都在链接二进制库中链接
我已尝试清理Xcode和缓存,将$(继承)
添加到其他链接器标志
,将Yes
设置为启用模块(C和Objective-C)
。没有正在使用的POD,也没有任何其他第三方框架
我正在检查项目是否立即生成,而没有在其他文件中实现任何方法,因此我的项目中没有更多更改
提前感谢您的帮助。看起来像是libc++。dylib
未链接到项目
选择项目文件
选择目标
选择“构建阶段”子选项卡
在“将二进制文件链接到库”下,按+
按钮
选择libc++.dylib
并按Add
另一个选择是尝试将<代码> -LC++<代码>添加到<代码> OTFLADLDFLAGs。
看起来C++链接库没有链接/有错误的版本。你确定C++ C++ C++标准库转换为“LCBV++(LVVM C++标准库,C++ 11支持)”吗?是的,代码< C++标准库< /C> >设置为<代码> LBC+ +(LVVM C++标准库,C++ 11支持)< /COD>
#ifndef _ltProjectName_gt_Bridging_Header_h
#define _ltProjectName_gt_Bridging_Header_h
#import "Frameworks/JabberGuest.framework/Headers/JabberGuest.h"
#endif