【发布时间】:2018-08-02 12:49:20
【问题描述】:
我正在尝试在 Visual Studio 2017 上编译用 C++ 编写的软件,但我在库中遇到了问题。描述是这样的。
Severity Code Description Project File Line Suppression State
Error LNK2001 unresolved external symbol "public: virtual void __thiscall CEZOptionsDlg::AddButton(class ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > >,unsigned int)" (?AddButton@CEZOptionsDlg@@UAEXV?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@I@Z)
我已经在“VC++ 目录”中包含了库的路径,并在“附加库目录”中添加了 *.lib。 该设置处于“调试”、“x86”模式。
我已尝试更改“运行时库”中的设置,但它不起作用。 我试图改变“调用约定”,但它也不起作用。
因为是很久以前写的软件,所以我怀疑问题可能出在x86和x32上。但是在“配置管理器”中,它运行在平台win32上。应该没有错。
我也怀疑这可能是 .dll 中的问题,但我只是编译了软件。它应该只与.lib相关
我不知道 *.lib 是否完整,因为我没有这个库的源代码。
我已经被困在这个问题中 2 天了。谁能来帮帮我。
【问题讨论】:
-
库(lib 文件)可以是 x86 和 x64,您可能还想检查您链接的对象。
-
在“附加库目录”中,您应该只添加目录,而不是库本身。这些在项目设置中有自己的位置。
-
只有一个库文件,但我不知道它是在 x86 还是 x64 中。我怎么知道?
-
事实上,在“其他库目录”中,我确实添加了路径,而不是库。我也尝试在 Input->additional Dependencies 中添加库文件,但还是不行。
-
使用旧版本的VS并检查。
标签: c++ visual-studio dll development-environment lib