【问题标题】:VS2012 Project+openssl (LNK2001)VS2012项目+openssl (LNK2001)
【发布时间】:2014-06-15 23:33:09
【问题描述】:

抱歉英语不好,请使用 Google.translate 试图将 OpenSSL 包含到 VS2012 的项目(DLL)中。 1. 下载installer(Win32 OpenSSL v1.0.1g, 16mb) 并安装。 2.构建项目 3. 报错

1>libeay32MDd.lib(cryptlib.obj) : error LNK2001: unresolved external symbol "__imp__GetUserObjectInformationW@20"
1>libeay32MDd.lib(cryptlib.obj) : error LNK2001: unresolved external symbol "__imp__GetProcessWindowStation@0"
1>libeay32MDd.lib(cryptlib.obj) : error LNK2001: unresolved external symbol "__imp__GetDesktopWindow@0"
1>libeay32MDd.lib(cryptlib.obj) : error LNK2001: unresolved external symbol "__imp__MessageBoxA@16"
1>libeay32MDd.lib(cryptlib.obj) : error LNK2001: unresolved external symbol "__imp__DeregisterEventSource@4"
1>libeay32MDd.lib(cryptlib.obj) : error LNK2001: unresolved external symbol "__imp__ReportEventA@36"
1>libeay32MDd.lib(rand_win.obj) : error LNK2001: unresolved external symbol "__imp__DeleteDC@4"
1>libeay32MDd.lib(rand_win.obj) : error LNK2001: unresolved external symbol "__imp__DeleteObject@4"
1>libeay32MDd.lib(rand_win.obj) : error LNK2001: unresolved external symbol "__imp__GetBitmapBits@12"
1>libeay32MDd.lib(rand_win.obj) : error LNK2001: unresolved external symbol "__imp__BitBlt@36"
1>libeay32MDd.lib(rand_win.obj) : error LNK2001: unresolved external symbol "__imp__GetObjectA@12"
1>libeay32MDd.lib(rand_win.obj) : error LNK2001: unresolved external symbol "__imp__SelectObject@8"
1>libeay32MDd.lib(rand_win.obj) : error LNK2001: unresolved external symbol "__imp__CreateCompatibleBitmap@12"
1>libeay32MDd.lib(rand_win.obj) : error LNK2001: unresolved external symbol "__imp__GetDeviceCaps@8"
1>libeay32MDd.lib(rand_win.obj) : error LNK2001: unresolved external symbol "__imp__CreateCompatibleDC@4"
1>libeay32MDd.lib(rand_win.obj) : error LNK2001: unresolved external symbol "__imp__CreateDCA@16"

链接库

#pragma comment(lib, "ssleay32xx.lib")
#pragma comment(lib, "libeay32xx.lib")

我尝试了不同版本的库,只是将 /MT 更改为 /MD。 库已连接,作为函数调用

CMS_sign(&signcert,&pkey,&certs,&data,NULL);

不会导致错误。从函数名称来看是标准的Windows函数。

【问题讨论】:

    标签: c windows winapi linker openssl


    【解决方案1】:

    解决问题

    #pragma comment(lib, "User32.lib")
    #pragma comment(lib, "GDI32.lib")
    #pragma comment(lib, "Advapi32.lib")
    

    【讨论】:

    • 解决了这个问题。另请注意,在 VS 中,这也可以通过右键单击项目 -> 链接器 -> 输入 -> 附加依赖项来解决。并在那里添加这些库。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-15
    • 2013-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-25
    相关资源
    最近更新 更多