Boost logo

Boost Users :

Subject: [Boost-users] [DLL] BOOST_DLL_ALIAS not working on MinGW-w64
From: David Demelier (markand_at_[hidden])
Date: 2018-11-09 10:04:55


Hello,

I'm using boost 1.68 on MinGW-w64 (Windows 10). I'm trying a simple
plugin that works fine under Linux and FreeBSD

However, on Windows boost::dll::import_alias triggers an exception:

terminate called after throwing an instance of
'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::system::system_error>
>'
   what(): boost::dll::shared_library::get() failed: The specified
procedure could not be found

This is the plugin (plugin.cpp)

     #include <iostream>

     #include <boost/dll.hpp>

     namespace custom {

     void my_function()
     {
             puts("CALLED");
     }

     } // !custom

     BOOST_DLL_ALIAS(custom::my_function, my_function)

I compile using:

g++ -std=c++17 -shared -o plugin.dll plugin.cpp -lboost_system-mt

And the simple main.cpp file:

     #include <boost/dll.hpp>

     int main()
     {
             using my_function = void ();

             auto f =
boost::dll::import_alias<my_function>("./plugin.dll", "my_function");
     }

What's strange, nm does not report any kind of unmangled symbols related
to "my_function":

     $ nm plugin.dll | grep my_function
     0000000067e81422 t _GLOBAL__sub_I__ZN6custom11my_functionEv
     0000000067e813b0 T _ZN6custom11my_functionEv

It should contains something starting with boostdll_ isn't it? What's
happening there?

Do I miss something?

-- 
David

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net