[Libwebsockets] protocol_example_standalone / Win32

Andy Green andy at warmcat.com
Sun Jan 29 03:46:02 CET 2017



On 01/29/2017 09:42 AM, Joel Winarske wrote:
> It was missing the two exports:
> 1. destroy_protocol_example_standalone
> 2. init_protocol_example_standalone
>
> It is a configuration issue with the VS project.  After matching 
> project parameters against known good plugin it's working fine.

That's good to hear.

>
> It involves a multitude of manual steps after what CMakeLists.txt 
> generates.

The cause - well, the root cause is MSVC / Windows... Microsoft... - is 
likely that I didn't chop down the main CMakeLists.txt to form the 
example one for the standalone plugin... I just put enough bits in it to 
make it work well on Linux.  Windows guys from earlier have hacked the 
main CMakeLists.txt to do whatever else is needed.

The build of the plugin doesn't actually involve anything that isn't 
done for the build of the lib... it's a DLL with exports coming out in 
the end the same.  So I guess the "multitude of manual steps" are also 
workarounds for whatever the cut down CMakeLists.txt isn't doing for the 
Windows case compared to the main lws one.

-Andy

>
> On Sat, Jan 28, 2017 at 12:42 PM, Andy Green <andy at warmcat.com 
> <mailto:andy at warmcat.com>> wrote:
>
>
>
>     On 29 January 2017 03:09:34 GMT+08:00, Joel Winarske
>     <joel.winarske at gmail.com <mailto:joel.winarske at gmail.com>> wrote:
>     >I am attempting to have lwsws load plugin
>     >protocol_example_standalone.dll.
>     >
>     >I'm seeing:
>     >[2017/01/28 10:43:10:2640] ERR: Failed to get init on
>     >protocol_example_standalone.dll: The specified procedure could not be
>     >found.
>     >
>     >It loads all the other plugins built with libwebsocket without error.
>     >
>     >Any ideas?
>
>     The names of the exports in the plugin must match the plugin name.
>
>     For example 'plugin_standalone' exports
>     'init_protocol_example_standalone'.
>
>     The other reason I can imagine is maybe no exports or decorated
>     exports from your plugin dll... you need some objdump like tool to
>     check it.
>
>     -Andy
>
>     >
>     >Thanks,
>     >Joel
>     >
>     >
>     >Building this plugin on Windows required some fiddling:
>     >
>     >
>     >*libwebsockets plugin-standalone*
>     >1. Open VS2015 x86 Native Tools window
>     >2. cd C:\Users\joel\Documents\GitHub\libwebsockets\plugin-standalone
>     >3. mkdir build
>     >4. cd build
>     >5.
>     >C:\Users\joel\Documents\GitHub\libwebsockets\plugin-standalone\build>cmake
>     >.. -DLWS_WITH_LWSWS=1
>     >-DLWS_OPENSSL_INCLUDE_DIRS=C:\OpenSSL-Win32\include
>     >-DLWS_LIBUV_LIBRARIES=C:\Users\joel\Documents\GitHub\libuv\Debug\lib\libuv.lib
>     >-DLWS_LIBUV_INCLUDE_DIRS=C:\Users\joel\Documents\GitHub\libuv\include
>     >
>     >6. Open the protocol_example_standalone sln file, and update as
>     >follows:
>     >
>     >VC++ Directories->Include Directories <append>
>     >C:\Users\joel\Documents\GitHub\libuv\include;C:\OpenSSL-Win32\include
>     >VC++ Directories->Library Directories <append>
>     >C:\Users\joel\Documents\GitHub\libwebsockets\build\lib\Debug;C:\Users\joel\Documents\GitHub\libuv\Debug\lib
>     >Linker->Input <append>
>     >websockets.lib;libuv.lib;ws2_32.lib;;userenv.lib;psapi.lib;iphlpapi.lib
>     >
>     >7. Build.  you get protocol_example_standalone.dll. Drop this into
>     >your
>     >lwsws plugin directory.
>
>     --
>     Sent from my Android device with K-9 Mail. Please excuse my brevity.
>
>




More information about the Libwebsockets mailing list