build poco c++ library on windows - c++

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.

Related

Constant linker errors when compiling a program using Dear ImGui

83
Back-ends: imgui_impl_dx9.cpp + imgui_impl_win32.cpp
Operating System: Windows 10
Compiler: Visual Studio 2019
My Issue/Question:
I keep getting constant linker errors when trying to compile my program and I cannot figure out what is causing them
I have the files required and they're included in the .sln properties and in my main.cpp
1>------ Build started: Project: ConsoleApplication2, Configuration: Debug Win32 ------
1>ConsoleApplication2.cpp
1>imgui_widgets.cpp
1>Generating Code...
1>ConsoleApplication2.obj : error LNK2019: unresolved external symbol _Direct3DCreate9#4 referenced in function "bool __cdecl CreateDeviceD3D(struct HWND__ *)" (?CreateDeviceD3D##YA_NPAUHWND__###Z)
1>imgui_impl_win32.obj : error LNK2019: unresolved external symbol _XInputGetState#8 referenced in function "void __cdecl ImGui_ImplWin32_UpdateGamepads(void)" (?ImGui_ImplWin32_UpdateGamepads##YAXXZ)
1>imgui_impl_win32.obj : error LNK2019: unresolved external symbol _XInputGetCapabilities#12 referenced in function "void __cdecl ImGui_ImplWin32_UpdateGamepads(void)" (?ImGui_ImplWin32_UpdateGamepads##YAXXZ)
1>C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x64\xinput.lib : warning LNK4272: library machine type 'x64' conflicts with target machine type 'x86'
1>C:\Users\Logan\source\repos\ConsoleApplication2\Debug\ConsoleApplication2.exe : fatal error LNK1120: 3 unresolved externals
1>Done building project "ConsoleApplication2.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

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.

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".

Building a static library for glut 3.7 on Windows

I've been trying to compile glut as a static library without having to link with glut32.dll on runtime. I downloaded the glut windows source code but when I try to compile (default), I keep getting:
Making in glut subdirectory...
link /INCREMENTAL:NO /NOLOGO -entry:_DllMainCRTStartup#12 -dll -out:glut32.dll -def:glut.def glut_8x13.obj glut_9x15.obj glut_bitmap.obj glut_bwidth.obj glut_cindex.obj glut_cmap.obj glut_cu
rsor.obj glut_dials.obj glut_dstr.obj glut_event.obj glut_ext.obj glut_fullscrn.obj glut_gamemode.obj glut_get.obj glut_hel10.obj glut_hel12.obj glut_hel18.obj glut_init.obj glut_input.obj glut_joy.ob
j glut_key.obj glut_keyctrl.obj glut_keyup.obj glut_mesa.obj glut_modifier.obj glut_mroman.obj glut_overlay.obj glut_roman.obj glut_shapes.obj glut_space.obj glut_stroke.obj glut_swap.obj glut_swidth.
obj glut_tablet.obj glut_teapot.obj glut_tr10.obj glut_tr24.obj glut_util.obj glut_vidresize.obj glut_warp.obj glut_win.obj glut_winmisc.obj win32_glx.obj win32_menu.obj win32_util.obj win32_winproc.o
bj win32_x11.obj opengl32.lib glu32.lib winmm.lib kernel32.lib ws2_32.lib mswsock.lib advapi32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib
LINK : fatal error LNK1104: cannot open file 'glut32.lib'
NMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\link.EXE"' : return code '0x450'
Stop.
NMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\nmake.EXE"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\nmake.EXE"' : return code '0x2'
Stop.
From what I understand, glut32.lib should be compiled and created in {source}\lib\glut\ but it's not there.
Any help compiling a static library for glut would be appreciated.
Edit:
In Makefile.win
Changed:
$(link) $(LFLAGS) -out:$(GLUTDLL) -def:glut.def $(OBJS) $(LIBS)
to
lib $(OBJS) $(LIBS)
It generated \lib\glut\glut_8x13.lib not sure what the 8x13 is about but when I tried to link with it, I got some unresolved externals:
GPURenderer_test.obj : error LNK2019: unresolved external symbol __imp__glutCreateWindow#4 referenced in function "protected: __thiscall GlobalDecl::OpenGLConte
xt::OpenGLContext(unsigned int,unsigned int)" (??0OpenGLContext#GlobalDecl##IAE#II#Z)
GPURenderer_test.obj : error LNK2019: unresolved external symbol __imp__glutInitWindowSize#8 referenced in function "protected: __thiscall GlobalDecl::OpenGLCon
text::OpenGLContext(unsigned int,unsigned int)" (??0OpenGLContext#GlobalDecl##IAE#II#Z)
GPURenderer_test.obj : error LNK2019: unresolved external symbol __imp__glutInitWindowPosition#8 referenced in function "protected: __thiscall GlobalDecl::OpenG
LContext::OpenGLContext(unsigned int,unsigned int)" (??0OpenGLContext#GlobalDecl##IAE#II#Z)
GPURenderer_test.obj : error LNK2019: unresolved external symbol __imp__glutInitDisplayMode#4 referenced in function "protected: __thiscall GlobalDecl::OpenGLCo
ntext::OpenGLContext(unsigned int,unsigned int)" (??0OpenGLContext#GlobalDecl##IAE#II#Z)
GPURenderer_test.obj : error LNK2019: unresolved external symbol __imp__glutInit#8 referenced in function "protected: __thiscall GlobalDecl::OpenGLContext::Open
GLContext(unsigned int,unsigned int)" (??0OpenGLContext#GlobalDecl##IAE#II#Z)
GPURenderer_test.obj : error LNK2019: unresolved external symbol __imp__glutSwapBuffers#0 referenced in function "protected: void __thiscall GlobalDecl::OpenGLC
ontext::_executeTest(class GlobalDecl::UnitTest &)" (?_executeTest#OpenGLContext#GlobalDecl##IAEXAAVUnitTest#2##Z)
Thanks,
Ryan
It looks to me like you have something pretty badly munged up in your build setup (or you're using the wrong build setup completely, such as trying to build some samples before you've built the library they use).
To build a static library, you shouldn't be running link at all. For a static library, you compile your object files, then use lib to put them together into a library. You'd use link to build a dynamic library (DLL) or an executable, but not a static library.

boost::asio ssl linking error

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.