我在Visual Studio 2008中遇到了tessdll的几个问题。仅供参考,我将此应用程序创建为MFC应用程序,这样做只是为了利用所需的简单GUI。从那以后,它只是直接的C ++和win32。

由于某种原因,它可以作为调试版本正常运行(因为我已经包含了所需的头文件和lib文件,并且dll位于我可以放置的每个目录中……)。

因此,在构建发行版本期间存在链接问题:

Linking...
MTGOBot.obj : error LNK2001: unresolved external symbol "__declspec
(dllimport) public: __thiscall TessDllAPI::TessDllAPI(char const
*)" (__imp_??0TessDllAPI@@QAE@PBD@Z)
MTGOBot.obj : error LNK2001: unresolved external symbol "__declspec
(dllimport) public: __thiscall TessDllAPI::~TessDllAPI(void)" (__imp_??
1TessDllAPI@@QAE@XZ)
MTGOBot.obj : error LNK2001: unresolved external symbol "__declspec
(dllimport) public: int __thiscall TessDllAPI::BeginPage(unsigned
int,unsigned int,unsigned char *,unsigned char)" (__imp_?
BeginPage@TessDllAPI@@QAEHIIPAEE@Z)
MTGOBot.obj : error LNK2001: unresolved external symbol "__declspec
(dllimport) public: struct ETEXT_STRUCT * __thiscall
TessDllAPI::Recognize_all_Words(void)" (__imp_?
Recognize_all_Words@TessDllAPI@@QAEPAUETEXT_STRUCT@@XZ)
C:\CPP Projects\Visual Studio 2008\Projects\MTGO SO Bot\MTGO SO Bot
\Release\MTGO SO Bot.exe : fatal error LNK1120: 4 unresolved externals


另外,作为参考,可以在这里找到tessdll.h的源:
http://code.google.com/p/tesseract-ocr/source/browse/trunk/tessdll.h?r=165

更多细节:


我从工具栏调试并使用
集成调试器。
我使用批处理
构建以创建发行版本。

最佳答案

没有看到项目设置,这很难。
要检查的内容(调试和发布设置之间的差异):

1)您是否在发行版本中包括.lib?

2)您是否意外地为tessdll定义了预处理指令?

我将遍历所有设置,在调试和发行版之间来回切换,并查看意外添加/遗忘的内容。

DLL的存在仅在运行时才需要。你还没走那么远。

10-07 23:37