LNK2019:第1行.obj文件中未解析的外部符号__imp__
LNK2019: Unresolved external symbol __imp__ in the .obj file in Line 1
我不知道哪里出了问题。我将描述这个问题,然后阐述我对正在发生的事情的理解。这是一个简单的代码:
#include <iostream>
#include <stdio.h>
#include "stdafx.h"
#include <iViewNG-Core.h>
int main(int argc, char ** args) {
iViewVersion version;
iViewRC rc = iView_GetLibraryVersion(&version);
if (RC_NO_ERROR != rc)
printf("ERROR returned by iView_GetLibraryVersion(): %dn", rc);
printf("The version of the libiViewNG is: %u.%u.%u.%un", version.major, version.minor, version.patch, version.build);
return 0;
}
错误描述:
错误LNK2019未解析的外部符号__imp__iView_GetLibraryVersion@4在function _main SMI_TrialTests中引用c:UsersRakshitdocumentsvisual studio 2015ProjectsSMI_TrialTestsSMI_TrialTestsSMI_TrialTests SMI_TrialTestsSMI_TrialTests。obj
我确认代码确实正在读取iViewNG-Core.h,因为自动填充允许我使用文件中声明的函数。我通过在适当的vc++目录中正确地添加库和包含目录来做到这一点。既然这是一个链接器问题,我在哪里出错?
我是c++的新手,我知道有很多重复的LNK2019问题,但似乎没有一个能解决我的问题。
链接器输出:
/: " c: rakshit 文档 visual studio用户2015 SMI_TrialTests 项目调试 SMI_TrialTests.exe "/清单/NXCOMPAT/PDB:"c:usersrakshitdocumentsvisual studio .2015 SMI_TrialTests SMI_TrialTests调试项目。pdb "/DYNAMICBASE"kernel32。自由"user32。自由"gdi32。自由"winspool。自由"comdlg32.lib"advapi32。自由"shell32。自由"ole32。自由"oleaut32。自由"uuid.lib"odbc32。自由"odbccp32。/DEBUG/MACHINE:X86/INCREMENTAL用户/PGD:"c: rakshit visual studio的文档2015 SMI_TrialTests 项目调试 SMI_TrialTests.pgd"/SUBSYSTEM:CONSOLE/MANIFESTUAC:"level='asInvoker' uiAccess='false'"/ManifestFile:"调试 SMI_TrialTests.exe.intermediate.manifest"/ERRORREPORT:PROMPT/NOLOGO/VERBOSE/LIBPATH:"C:iView NG .SDK lib lib-Windows7-32"/TLBID: 1
检查符号__imp__iView_GetLibraryVersion@4
,它可以分为两个块:
-
__imp_
:表示__declspec(dllimport)
。 -
_iView_GetLibraryVersion@4
:这是实际的符号,被修改为C(或extern "C"
)__stdcall
符号,其中参数的大小总计为4字节。
考虑到这一点,并根据您的代码,导致问题的函数很可能是:
extern "C" __declspec(dllimport) iViewRC __stdcall iView_GetLibraryVersion(iViewVersion*);
我建议检查包含此函数的DLL的LIB文件是否传递给cl
或link
(在前一种情况下,cl
将为您传递给link
)。
- C++:Application.cpp中抛出了未解析的外部符号(解决方案在问题的末尾,供未来的读者参考)
- 未解析的外部符号_MsiLocateComponentW@12.
- 在C++中使用 gRPC 时未解析的外部符号
- LibPrivoxy: 未解析的外部符号 __declspec(dllimport) int __stdcall Sta
- 尝试从 XamlApplication 编译 C++/WinRT 空白应用程序时,我收到未解析的外部符号 winrt_make_*
- 我收到错误LNK2001:未解析的外部符号(C++代码)
- 可视抽象类 c++(错误 LNK 2001:未解析的外部符号)
- 如何摆脱C++中未解析的外部符号"private: static char"错误?
- 当 lib 已添加到其他依赖项时,如何在 VS 中调试未解析的外部符号错误
- 仅在少数方法(静态或共享库)中解析的外部符号
- 未解析的外部符号"__declspec(dllimport)与 Spdlog c++ 库
- 函数 _main (OPENGL C++) 中引用的未解析的外部符号 ________
- 错误LNK2019未解析的外部符号"public: __thiscall SLinkList<char>::SLinkList<char>(void)"
- 使用静态 constexpr 成员的未解析外部符号
- 引入参数化构造函数后显示 LNK 2019 未解析外部符号的代码错误
- Dlib LNK2001未解析的外部符号USER_ERROR__consistent_build_configurati
- 矛盾的未解决的外部符号+未使用的库与VS2017和FFMPEG 4
- 链接器错误:切换到unicode生成给出:未解析的外部符号WinMain
- 类模板上一个特定函数的未解析外部符号
- LNK2001:未解析的外部符号public:static类std::vector