我已经从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”选项后,问题不再存在。

我不确定为什么会解决此问题,但这是我的解决方案。

10-07 19:54