xcode - 未找到建筑的符号
问题描述
大家好,我遇到了一个错误,我用统一的 xcode 构建我的游戏
错误由此开始:
Undefined symbols for architecture arm64:
"std::ostream::write(char const*, long)", referenced from: Pfx::Linker::Detail::InstancesMapping::write(Pfx::Linker::Detail::MappingOStream) const in libiPhone-lib.a(linkerdetailcachemapping.o)
而且日志太多我无法全部粘贴
错误以此结束:
"std::string::insert(unsigned long, char const*, unsigned long)", referenced from:
PatchShaderFogGLES(std::string&, std::string&, FogMode, bool) in libiPhone-lib.a(GLSLUtilities.o)
PatchVertexShaderFogMetal(std::string&, FogMode) in libiPhone-lib.a(ShaderPatchingMetal.o)
InsertFogVaryingMetal(std::string&, bool) in libiPhone-lib.a(ShaderPatchingMetal.o)
PatchPixelShaderFogMetal(std::string&) in libiPhone-lib.a(ShaderPatchingMetal.o)
"std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)", referenced from:
std::_Rb_tree<std::string, std::pair<std::string const, void (*)()>, std::_Select1st<std::pair<std::string const, void (*)()> >, std::less<std::string>, std::allocator<std::pair<std::string const, void (*)()> > >::_M_insert_unique(std::_Rb_tree_iterator<std::pair<std::string const, void (*)()> >, std::pair<std::string const, void (*)()> const&) in libiPhone-lib.a(InternalCalls.o)
std::_Rb_tree<std::string, std::pair<std::string const, void (*)()>, std::_Select1st<std::pair<std::string const, void (*)()> >, std::less<std::string>, std::allocator<std::pair<std::string const, void (*)()> > >::_M_insert_unique(std::pair<std::string const, void (*)()> const&) in libiPhone-lib.a(InternalCalls.o)
std::_Rb_tree<TypeInfo*, std::pair<TypeInfo* const, TypeInfo*>, std::_Select1st<std::pair<TypeInfo* const, TypeInfo*> >, std::less<TypeInfo*>, std::allocator<std::pair<TypeInfo* const, TypeInfo*> > >::_M_insert_unique(std::pair<TypeInfo* const, TypeInfo*> const&) in libiPhone-lib.a(MetadataCache.o)
std::_Rb_tree<void (*)(), void (*)(), std::_Identity<void (*)()>, std::less<void (*)()>, std::allocator<void (*)()> >::_M_insert_unique(void (* const&)()) in libiPhone-lib.a(RegisterRuntimeInitializeAndCleanup.o)
std::_Rb_tree<TypeInfo*, TypeInfo*, std::_Identity<TypeInfo*>, std::less<TypeInfo*>, std::allocator<TypeInfo*> >::_M_insert_unique(TypeInfo* const&) in libiPhone-lib.a(MonoType.o)
std::_Rb_tree<void*, std::pair<void* const, ExternalAllocInfo>, std::_Select1st<std::pair<void* const, ExternalAllocInfo> >, std::less<void*>, stl_allocator<std::pair<void* const, ExternalAllocInfo>, (MemLabelIdentifier)49, 16> >::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<void* const, ExternalAllocInfo> const&) in libiPhone-lib.a(MemoryManager.o)
std::_Rb_tree<TexturesMetal::MetalSampler, std::pair<TexturesMetal::MetalSampler const, id<MTLSamplerState> __strong>, std::_Select1st<id<MTLSamplerState> __strong>, memcmp_less<TexturesMetal::MetalSampler>, std::allocator<id<MTLSamplerState> __strong> >::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base, id<MTLSamplerState> __strong const&) in libiPhone-lib.a(TexturesMetal.o)
...
"std::string::insert(unsigned long, std::string const&, unsigned long, unsigned long)", referenced from:
PatchShaderFogGLES(std::string&, std::string&, FogMode, bool) in libiPhone-lib.a(GLSLUtilities.o)
PatchVertexShaderFogMetal(std::string&, FogMode) in libiPhone-lib.a(ShaderPatchingMetal.o)
PatchPixelShaderFogMetal(std::string&) in libiPhone-lib.a(ShaderPatchingMetal.o)
"RegisterStaticallyLinkedModuleClasses(ClassRegistrationContext&)", referenced from:
InvokeRegisterStaticallyLinkedModuleClasses(ClassRegistrationContext&) in UnityClassRegistration.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
如果你有任何建议谢谢。我试过:
1 将“-ObjC”或“$(inherited)”添加到“其他链接器标志”
2 将“c++ 标准库”改为“libc++(LLVM)”
3 删除“libiconv.2.dylib”并添加“libiconv.2.tdb”,因为我的项目中不存在“libiconv.2.dylib”
我正在使用:XCode(10.1) 和 Unity4.7.0f1
解决方案
弄清楚了。需要将“Apple LCM 6.0 -Language - C++”中的“C++ Standard Library”从“Compiler Default”改为“libstdc++(GNU C++标准库)”
(统一论坛) https://answers.unity.com/questions/837103/unity3d-for-ios-a-lot-of-linker-errors-after-upgra.html
推荐阅读
- laravel - 如何修复在 Laravel 中迁移后弹出的此错误
- ios - fastlane match 命令可以潜在地撤销证书吗
- database - 我可以删除主键而不删除引用的外键吗?
- django - 如何在 django 模板中动态显示图像?
- angular - 415 Unsupported media Type in http.post Angular 请求
- ios - 如何从我的 iphone 浏览我的应用程序的 pdf 文件,就像我可以通过 ibooks 浏览 pdf 文件一样?
- docker - 使用 docker-compose.yml 中的命令等待 docker 容器准备就绪
- algorithm - 解决这个问题的最佳方法是什么?
- macos - Automator mac“您无权将文件移动到垃圾箱”
- java - 调用 onResume 时出现 NFC DeadObjectException