boost::asio ssl linking error - c++

I'm using boost version 1.47, visual studio 2010, I downloaded the binaries for windows and linked to the include directory and lib directory from my project preferences. But I still can't use any ssl functionality from boost::asio.
This is the site where I downloaded the binaries: http://www.slproweb.com/products/Win32OpenSSL.html
I Downloaded: Visual C++ 2008 Redistributables and Win32 OpenSSL v1.0.1
These are the error messages I get:
Error 1 error LNK2019: unresolved external symbol _ERR_reason_error_string referenced in function "public: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall boost::asio::error::detail::ssl_category::message(int)const " (?message#ssl_category#detail#error#asio#boost##UBE?AV?$basic_string#DU?$char_traits#D#std##V?$allocator#D#2##std##H#Z) C:\Documents and Settings\Elias\my documents\visual studio 2010\Projects\OmniTcp\OmniTcp\main.obj OmniTcp
Error 2 error LNK2001: unresolved external symbol _ERR_reason_error_string C:\Documents and Settings\Elias\my documents\visual studio 2010\Projects\OmniTcp\OmniTcp\OmniTcp.obj OmniTcp
Error 3 error LNK2019: unresolved external symbol _CRYPTO_set_id_callback referenced in function "public: __thiscall boost::asio::ssl::detail::openssl_init_base::do_init::do_init(void)" (??0do_init#openssl_init_base#detail#ssl#asio#boost##QAE#XZ) C:\Documents and Settings\Elias\my documents\visual studio 2010\Projects\OmniTcp\OmniTcp\main.obj OmniTcp
Error 4 error LNK2001: unresolved external symbol _CRYPTO_set_id_callback C:\Documents and Settings\Elias\my documents\visual studio 2010\Projects\OmniTcp\OmniTcp\OmniTcp.obj OmniTcp
Error 5 error LNK2019: unresolved external symbol _CRYPTO_set_locking_callback referenced in function "public: __thiscall boost::asio::ssl::detail::openssl_init_base::do_init::do_init(void)" (??0do_init#openssl_init_base#detail#ssl#asio#boost##QAE#XZ) C:\Documents and Settings\Elias\my documents\visual studio 2010\Projects\OmniTcp\OmniTcp\main.obj OmniTcp
Error 6 error LNK2001: unresolved external symbol _CRYPTO_set_locking_callback C:\Documents and Settings\Elias\my documents\visual studio 2010\Projects\OmniTcp\OmniTcp\OmniTcp.obj OmniTcp
Error 25 error LNK1120: 12 unresolved externals C:\Documents and Settings\Elias\my documents\visual studio 2010\Projects\OmniTcp\Debug\OmniTcp.exe OmniTcp
I get a few more error messages but hey are all similar to eachother.

These are the libraries I linked to with boost 1.69, visual studio 2019, and OpenSSl-Win64:
libssl.lib;libcrypto.lib

As mentioned in the comments to the question, my project linked once I added:
lib\libeay32.lib
lib\ssleay32.lib
To the Project->Configuration Properties->Linker->Input->Additional Dependencies property.

Add the SSL dependencies (lib files) manually to project-->properties-->Linker-->Input-->Additional Dependencies.

Related

build poco c++ library on windows

I'm trying to build poco library (c++) with openssl on windows 10 (VS 2012). With the following cmd file:
#echo off
set INCLUDE=c:\openssl\include
set LIB=c:\openssl\lib
set _IsNativeEnvironment=true
call "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" amd64
call "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\amd64\vcvars64.bat"
buildwin 110 build all release x64 nosamples notests devenv
I get link errors:
1>------ Build started: Project: Crypto, Configuration: release_shared x64 ------
1> Datei *.dll nicht gefunden
1> Datei *.lib nicht gefunden
1> Creating library ..\lib64\PocoCrypto.lib and object ..\lib64\PocoCrypto.exp
1>ECKey.obj : error LNK2001: unresolved external symbol EVP_PKEY_type
1>ECKeyImpl.obj : error LNK2001: unresolved external symbol EVP_PKEY_type
1>RSAKeyImpl.obj : error LNK2001: unresolved external symbol EVP_PKEY_type
1>PKCS12Container.obj : error LNK2001: unresolved external symbol EVP_PKEY_type
1>EVPPKey.obj : error LNK2019: unresolved external symbol EVP_PKEY_type referenced in function "private: void __cdecl Poco::Crypto::EVPPKey::newECKey(char const *)" (?newECKey#EVPPKey#Crypto#Poco##AEAAXPEBD#Z)
...
(Datei *.dll nicht gefunden == file *.dll not found).
If I remove the Crypto in file "components" (Is it OK if I want to use https?), I get the following error:
1>------ Build started: Project: NetSSL_OpenSSL, Configuration: release_shared x64 ------
1> Creating library ..\lib64\PocoNetSSL.lib and object ..\lib64\PocoNetSSL.exp
1>Context.obj : error LNK2019: unresolved external symbol BIO_new_file referenced in function "private: void __cdecl Poco::Net::Context::initDH(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?initDH#Context#Net#Poco##AEAAXAEBV?$basic_string#DU?$char_traits#D#std##V?$allocator#D#2##std###Z)
...
I installed openssl from "Shining Light" (win64). I also tried to use openssl which is built from source (https://github.com/pocoproject/openssl). But I get the same errors.
Can someone help me ?!
Thank you!
Xinyu
OK, If I delete all object files: folder obj64, including obj64 in testsuite, then every thing is ok.

Boost 1.55 Python with Windows Visual Studio 2013, Link Error

I download boost1.55 zip from official website and then build with command bootstrap and b2.
And I tried example code, but it has a link error.
1>LINK : fatal error LNK1104: cannot open file 'libboost_python-vc120-mt-gd-1_55.lib'
Below is what I did.
New project win32 Console application, DLL empty.
Add include path, library path in VC++ DIRECTORIES like the below.
INCLUDE DIRECTORIES: C:\boost\boost_1_55_0;C:\Python27\include
LIBRARY DIRECTORIES: C:\boost\boost_1_55_0\libs;C:\Python27\libs
.
#define BOOST_PYTHON_STATIC_LIB
#include <boost/python.hpp>
using namespace boost::python;
struct World
{
void set(std::string msg) { this->msg = msg; }
std::string greet() { return msg; }
std::string msg;
};
BOOST_PYTHON_MODULE(hello)
{
class_<World>("World")
.def("greet", &World::greet)
.def("set", &World::set);
}
Edit
If i add the library directory, C:\boost_1_55_0\stage\liblike an answer below, it make many errors happen, around 200
below is just the part of errors.
1>------ Build started: Project: hello, Configuration: Debug Win32
------ 1> hello.cpp 1>c:\python27\include\pymath.h(22): warning C4273: 'round' : inconsistent dll linkage 1> c:\program files
(x86)\microsoft visual studio 12.0\vc\include\math.h(516) : see
previous definition of 'round' 1>c:\program files (x86)\microsoft
visual studio 12.0\vc\include\xtgmath.h(190): warning C4273: '_hypot'
: inconsistent dll linkage 1> c:\program files
(x86)\microsoft visual studio 12.0\vc\include\math.h(538) : see
previous definition of '_hypot' 1>c:\program files (x86)\microsoft
visual studio 12.0\vc\include\xtgmath.h(206): warning C4273: 'round' :
inconsistent dll linkage 1> c:\program files (x86)\microsoft
visual studio 12.0\vc\include\math.h(516) : see previous definition of
'round' 1>c:\boost_1_55_0\boost\python\opaque_pointer_converter.hpp :
warning C4819: The file contains a character that cannot be
represented in the current code page (949). Save the file in Unicode
format to prevent data loss
1>c:\boost_1_55_0\boost\python\return_opaque_pointer.hpp : warning
C4819: The file contains a character that cannot be represented in the
current code page (949). Save the file in Unicode format to prevent
data loss 1> Creating library C:\Users\User\documents\visual studio
2013\Projects\hello\Debug\hello.lib and object
C:\Users\User\documents\visual studio
2013\Projects\hello\Debug\hello.exp 1>hello.obj : error LNK2019:
unresolved external symbol __imp__PyString_FromStringAndSize
referenced in function "public: struct _object * __thiscall
boost::python::to_python_value,class std::allocator > const
&>::operator()(class std::basic_string,class std::allocator > const &)const "
(??R?$to_python_value#ABV?$basic_string#DU?$char_traits#D#std##V?$allocator#D#2##std###python#boost##QBEPAU_object##ABV?$basic_string#DU?$char_traits#D#std##V?$allocator#D#2##std###Z)
1>libboost_python-vc120-mt-gd-1_55.lib(builtin_converters.obj) : error
LNK2001: unresolved external symbol __imp__PyString_FromStringAndSize
1>libboost_python-vc120-mt-gd-1_55.lib(str.obj) : error LNK2001:
unresolved external symbol __imp__PyString_FromStringAndSize
1>libboost_python-vc120-mt-gd-1_55.lib(function_doc_signature.obj) :
error LNK2001: unresolved external symbol
__imp__PyString_FromStringAndSize 1>libboost_python-vc120-mt-gd-1_55.lib(list.obj) : error LNK2001:
unresolved external symbol __imp___Py_NoneStruct
1>libboost_python-vc120-mt-gd-1_55.lib(tuple.obj) : error LNK2001:
unresolved external symbol __imp___Py_NoneStruct
1>libboost_python-vc120-mt-gd-1_55.lib(function_doc_signature.obj) :
error LNK2001: unresolved external symbol __imp___Py_NoneStruct
1>libboost_python-vc120-mt-gd-1_55.lib(object_protocol.obj) : error
LNK2001: unresolved external symbol __imp___Py_NoneStruct
1>libboost_python-vc120-mt-gd-1_55.lib(pickle_support.obj) : error
LNK2001: unresolved external symbol __imp___Py_NoneStruct
1>libboost_python-vc120-mt-gd-1_55.lib(dict.obj) : error LNK2001:
unresolved external symbol __imp___Py_NoneStruct
1>libboost_python-vc120-mt-gd-1_55.lib(str.obj) : error LNK2001:
unresolved external symbol __imp___Py_NoneStruct
1>libboost_python-vc120-mt-gd-1_55.lib(from_python.obj) : error
LNK2001: unresolved external symbol __imp___Py_NoneStruct
1>libboost_python-vc120-mt-gd-1_55.lib(function.obj) : error LNK2001:
unresolved external symbol __imp___Py_NoneStruct
1>libboost_python-vc120-mt-gd-1_55.lib(module.obj) : error LNK2001:
The "LIBRARY DIRECTORY" should reference C:\boost_1_55_0\stage\lib instead of C:\boost\boost_1_55_0\libs.

Building m2crypto: 7 unresolved externals

I've tried to build M2Crypto (github) for win-amd64-py3.3:
python setup.py build --compiler msvc
And I've got an linker's unresolved external symbol errors (full log):
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\amd64\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:D:\Programy\Python33\libs /LIBPATH:D:\Programy\Python33\PCbuild\amd64 /LIBPATH:c:\pkg\lib ssleay32.lib libeay32.lib /EXPORT:PyInit___m2crypto build\temp.win-amd64-3.3\Release\SWIG/_m2crypto_wrap.obj /OUT:build\lib.win-amd64-3.3\M2Crypto\__m2crypto.pyd /IMPLIB:build\temp.win-amd64-3.3\Release\SWIG\__m2crypto.lib /MANIFESTFILE:build\temp.win-amd64-3.3\Release\SWIG\__m2crypto.pyd.manifest
_m2crypto_wrap.obj : warning LNK4197: export 'PyInit___m2crypto' specified multiple times; using first specification
Creating library build\temp.win-amd64-3.3\Release\SWIG\__m2crypto.lib and object build\temp.win-amd64-3.3\Release\SWIG\__m2crypto.exp
_m2crypto_wrap.obj : error LNK2019: unresolved external symbol PyString_AsStringAndSize referenced in function m2_PyString_AsStringAndSizeInt
_m2crypto_wrap.obj : error LNK2019: unresolved external symbol PyString_FromStringAndSize referenced in function bn_to_mpi
_m2crypto_wrap.obj : error LNK2019: unresolved external symbol PyInt_AS_LONG referenced in function asn1_integer_set
_m2crypto_wrap.obj : error LNK2019: unresolved external symbol PyBuffer_New referenced in function ec_key_get_public_der
_m2crypto_wrap.obj : error LNK2019: unresolved external symbol PyFile_AsFile referenced in function _wrap_err_print_errors_fp
_m2crypto_wrap.obj : error LNK2019: unresolved external symbol PyFile_Check referenced in function _wrap_err_print_errors_fp
_m2crypto_wrap.obj : error LNK2019: unresolved external symbol PyInstance_New referenced in function ssl_verify_callback
build\lib.win-amd64-3.3\M2Crypto\__m2crypto.pyd : fatal error LNK1120: 7 unresolved externals
What's going on? I'm using Win64 OpenSSL v1.0.1e. Do I need older libraries?
from the full log it looks like one first problem is that the compiler can't find the python c header files. Then the linker can't find the python library. Perhaps the options to cl.exe are not good (shouldn't it be /ID:\... instead of -ID:\...?) or you don't have the python header files installed.

lua 5.2.1 unresolved externals

I'm using visual studio 2012 and when I try to compile, I get following errors:
Error 7 error LNK1120: 6 unresolved externals C:\Users\MS\Documents\Visual Studio 2012\Projects\LuaTest\Release\LuaTest.exe LuaTest
Error 4 error LNK2001: unresolved external symbol _lua_close C:\Users\MS\Documents\Visual Studio 2012\Projects\LuaTest\LuaTest\main.obj LuaTest
Error 5 error LNK2001: unresolved external symbol _lua_pcallk C:\Users\MS\Documents\Visual Studio 2012\Projects\LuaTest\LuaTest\main.obj LuaTest
Error 6 error LNK2001: unresolved external symbol _lua_settop C:\Users\MS\Documents\Visual Studio 2012\Projects\LuaTest\LuaTest\main.obj LuaTest
Error 2 error LNK2001: unresolved external symbol _luaL_loadfilex C:\Users\MS\Documents\Visual Studio 2012\Projects\LuaTest\LuaTest\main.obj LuaTest
Error 1 error LNK2001: unresolved external symbol _luaL_newstate C:\Users\MS\Documents\Visual Studio 2012\Projects\LuaTest\LuaTest\main.obj LuaTest
Error 3 error LNK2001: unresolved external symbol _luaopen_base C:\Users\MS\Documents\Visual Studio 2012\Projects\LuaTest\LuaTest\main.obj LuaTest
Source code taken from
HERE.
Using following library version: lua-5.2.1_Win32_dll10_lib.zip
I tried different lua52.lib files, but with all of them I get these errors.
What could be wrong?
You are using Visual Studio 2012, but library files from here appealingly only support up to Visual Studio 2010.
Anyway, Lua is small and very easy to compile. I would really recommend you to include Lua source files in Visual Studio instead of libraries.

LNK 2019 - Unresolved External Symbol

I am getting the below link errors.
1>------ Build started: Project: NowHook, Configuration: Debug Win32 ------
1>Compiling...
1>NowHook.CPP
1>Linking...
1>NowHook.obj : error LNK2019: unresolved external symbol __imp__VirtualProtect#16 referenced in function "void __cdecl
1>NowHook.obj : error LNK2019: unresolved external symbol __imp__GetProcAddress#8 referenced in function "void __cdecl
1>NowHook.obj : error LNK2019: unresolved external symbol __imp__LoadLibraryA#4 referenced in function "void __cdecl HookSend(void)" (?HookSend##YAXXZ)
1>C:\Users\JAGAN\Documents\Visual Studio 2008\Projects\HookNow\Debug\NowHook.dll :
fatal error LNK1120: 3 unresolved externals
1>Build log was saved at "file://c:\Users\JAGAN\Documents\Visual Studio 2008\Projects
I have included
1) Linker/General/AdditionalLibraryDirectories
2) Linker/Input/Additional Dependencies
You are missing kernel32.lib in your Linker/Input/Additional Dependencies
Make sure you are setting the Additional Dependencies for "All Configurations" and "All Platforms".