none
使用visual studio出现错误如下:error LNK2019: 无法解析的外部符号 __imp__LoadLibraryExW@12,错误的文件是MSCVRTD.lib。求解! RRS feed

  • 问题

  • 使用visual studio 2013 跑了一个使用opencv的程序,然后就出现了特别多的错误,如下:(大都是:无法解析外部符号)

    错误 24 error LNK2019: 无法解析的外部符号 __imp__LoadLibraryExW@12,该符号在函数 "void __cdecl _RTC_AllocaFailure(void *,struct _RTC_ALLOCA_NODE *,int)" (?_RTC_AllocaFailure@@YAXPAXPAU_RTC_ALLOCA_NODE@@H@Z) 中被引用 c:\Users\DELL\documents\visual studio 2013\Projects\ConsoleApplication2\ConsoleApplication2\MSVCRT.lib(error.obj) ConsoleApplication2

    错误的文件是:MSCVRTD.lib

    在网上遍寻多日解决方法,但是都无法解决这个问题,所以来此求教!希望不吝赐教!!多多感谢!!!

    2016年8月15日 13:44

全部回复

  • LoadLibraryExW是unicode版本的C++函数,需要将C++项目设定为unicode编码后再进行编译

    路径是 Project Properties - General - Project Defaults - Character Set

     Use Unicode Character Set

    https://msdn.microsoft.com/en-us/library/windows/desktop/ms684179%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2016年8月16日 0:08
  • 字符集就是使用的Unicode还是不行啊。。呜呜。。
    2016年8月16日 5:22
  • 我现在直接跑一个很简单的程序:

    #include <iostream>
    int main()
    {
    using namespace std;
    cout << "Come";
    return 0;
    }

    就这样还是有错误,还是那个MSVCRTD.lib这个文件,错误如下:

    错误 1 error LNK2019: 无法解析的外部符号 __imp__EncodePointer@4,该符号在函数 ___atonexitinit 中被引用 c:\Users\DELL\documents\visual studio 2013\Projects\ConsoleApplication3\ConsoleApplication3\MSVCRTD.lib(atonexit.obj) ConsoleApplication3
    错误 2 error LNK2001: 无法解析的外部符号 __imp__EncodePointer@4 c:\Users\DELL\documents\visual studio 2013\Projects\ConsoleApplication3\ConsoleApplication3\MSVCRTD.lib(crtexe.obj) ConsoleApplication3
    错误 3 error LNK2019: 无法解析的外部符号 __imp__DecodePointer@4,该符号在函数 __onexit 中被引用 c:\Users\DELL\documents\visual studio 2013\Projects\ConsoleApplication3\ConsoleApplication3\MSVCRTD.lib(atonexit.obj) ConsoleApplication3
    错误 4 error LNK2019: 无法解析的外部符号 __imp__IsDebuggerPresent@0,该符号在函数 "void __cdecl failwithmessage(void *,int,int,char const *)" (?failwithmessage@@YAXPAXHHPBD@Z) 中被引用 c:\Users\DELL\documents\visual studio 2013\Projects\ConsoleApplication3\ConsoleApplication3\MSVCRTD.lib(error.obj) ConsoleApplication3

    一共有27个错误,都是的这个类型,这难道是我的VS安装的有问题??这个程序也没有使用opencv所以应该就是vs本身的问题啊,也换了12版本13版本都不行。。。到底是哪里的问题呢??求教!求教!!多多感谢!!!

    2016年8月16日 6:39
  • 产生这个错误“error LNK2019”的原因有很多:

    https://msdn.microsoft.com/en-us/library/799kze2z.aspx?f=255&MSPPError=-2147217396

    请问你要是只创建一个简单的win32 console程序也有问题吗?

    Project->Properties->Configuration Properties->Linker->System->SubSystem,你是选择的Console (/SUBSYSTEM:CONSOLE) 还是Windows(/SUBSYSTEM:WINDOWS)?

    要不你上传一个例子到one drive,我们帮你测试一下。另外如果只和opencv有关,http://answers.opencv.org/questions/ ,我建议你到opencv问一下。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2016年8月18日 12:11
    版主
  • 链接问题要这样找:

    以你第一个为例。打开 Google,搜索 LoadLibraryExW,打开 MSDN 的相关文章,翻到最下边。

    在 Requirements 表格里,有 lib 项。这里写的是 Kernel32.lib。

    那么答案就出来了,这里链接阶段缺少 Kernel32.lib。

    解决很简单。在项目属性里,Linker -> Input 里的 Additional Dependency 里添加 Kernel32.lib 即可。

    其他未解析符号也可以这么做。


    强烈建议每添加一个 lib 就 Build 一次。因为有些符号来自同一个 lib,这样做节省时间。

    2016年8月18日 13:05
  • 近期跑opengl程序也出现了这样的问题,苦恼了好久,望指导一下,谢谢
    2016年12月8日 7:18