最近做的一个项目,因为IOS不支持动态库上架,所以不能像Android一样直接动态加载so库,嵌套了许多C++代码。编译时出现了394 个duplicate symbol ’xxx‘错误,感觉要崩溃了。
...
duplicate symbol 'sleep(int)' in:
/Users/tdinnet/Library/Developer/Xcode/DerivedData/HumzorNL100-cemcwkenaocomlhjsnvgrfaflqde/Build/Intermediates.noindex/HumzorNL100.build/Debug-iphonesimulator/HumzorNL100.build/Objects-normal/x86_64/BMW_ResetCommon.o
/Users/tdinnet/Library/Developer/Xcode/DerivedData/HumzorNL100-cemcwkenaocomlhjsnvgrfaflqde/Build/Intermediates.noindex/HumzorNL100.build/Debug-iphonesimulator/HumzorNL100.build/Objects-normal/x86_64/DASReset_ResetCommon.o
ld: 394 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
以上意思是说"BMW_ResetCommon"文件和"DASReset_ResetCommon"文件有相同的方法名"sleep(int)",解决的方法也很简单,只要修改其中一个类中的"sleep(int)"方法名即可。
网友评论