我从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库中还有另一个主要功能。
我想知道为什么这个问题没有出现在原始项目中。 我尝试比较原始项目和我的可能的编译和链接选项,并且没有任何线索。
如果有人有解决此问题的经验,请稍微帮忙。我将非常感激。
非常感谢。
答案 0 :(得分:2)
回答我自己的问题。
我找到了根本原因,与重新包含主文件无关。
比较" iPhone-OCR-Tesseract-and-OpenCV"和我自己的项目,我发现我的项目有一个额外的链接器选项,即" load_all"。
删除这个" load_all"选项,问题就消失了。
我不确定为什么会出现问题,但在我的情况下这是一个解决方案。