...one of the most highly
regarded and expertly designed C++ library projects in the
world. — Herb Sutter and Andrei
Some platforms and compilers do not provide all the required functionality to have a fully functional Boost.DLL. Such compilers are mentioned in this section along with possible workarounds for those limitations.
Some versions of Android,
ld on Windows platform
fail to mix
weak attributes. This
leads us to situation, where we must explicitly specify translation unit
instantiated, making all other
declarations with that alias name an
Unit that must hold an instance of
before including any of the Boost.DLL library headers.
You may explicitly disable export of weak symbols using
This may be useful for working around linker problems or to test your program
for compatibility with linkers that do not support exporting weak symbols.
Some platforms ignore section attributes, so that querying for a symbols
in a specified section using
may return nothing.
On some platforms
dlclose and some other functions assume
that they won't be called concurrently.
Platforms that certaly have that issue are FreeBSD, MacOS, iOS.
Platforms that certaly do not have such issue are Windows, Linux+glibc, Android, QNX.
Other platforms are under question. If you're using one of the platforms
that are not listed (for example Linux+busybox), you may run the
to detect the issue:
cd boost_folder/libs/dll/test ../../../b2 -a shared_library_concurrent_load_test
If a function is defined inside the class-definition it may be interpreted as always-inline which can lead to the function not being exported at all. This does however differ between between compilers.