我已经从Github克隆了"iPhone-OCR-Tesseract-and-OpenCV"项目,安装了它的pod,编译了文件,它工作得很好。
但是,我尝试将 pod 文件与我现有的文件合并并编译它,我有一个问题显示
duplicate symbol _main in:
/Users/ivanlin/Library/Developer/Xcode/DerivedData/MailTracker-duddjrlaosmnafgcbrqibnzstqws/Build/Intermediates/MailTracker.build/Debug-iphoneos/MailTracker.build/Objects-normal/armv7/main.o
/Users/ivanlin/Documents/Projects/MailTracker/Pods/Tesseract/lib/libtesseract_all.a(svpaint.o) ld: 1 duplicate symbol for architecture armv7 clang: error: linker command failed with exit code 1 (use -v to see invocation)
似乎在Tesseract库中还有另一个主要功能。
我想知道为什么这个问题没有出现在原始项目中。我尝试比较原始项目和我的项目之间可能的编译和链接选项,但没有线索。
如果有人有解决此问题的经验,请提供一些帮助。我将不胜感激。
非常感谢。
回答我自己的问题。
我已经找到了根本原因,与重新包含主文件无关。
在比较了"iPhone-OCR-Tesseract-and-OpenCV"和我自己的项目后,我发现我的项目有一个额外的链接器选项,即"load_all"。
删除此"load_all"选项后,问题就消失了。
我不确定为什么会出现这个问题,但这是我的解决方案。