
-----Original Message----- From: Boost [mailto:boost-bounces@lists.boost.org] On Behalf Of Moshe Rubin Sent: 28 January 2015 14:14 To: boost@lists.boost.org Subject: Re: [boost] [filesystem, regex, asio] These three libraries successfully ported to Windows Phone 8.1
On January 27, 2015 09:55 GMT, Paul A. Bristow wrote:
And thank you very much for the improved WinRT support.
My pleasure. It was an education for me (in the positive sense of the word!) participating in porting Boost. I will only rest on my laurels once the port authorized by the crew and back in the repository <g>.
I'm pleased to see that Windows Phone developers will now be able to use these Boost libraries.
When we went looking for Boost ports for Windows Phone 8, we had a sinking feeling because no one had ported any of the libraries to WinRT. Steven Gates of Microsoft took the first step, and was a great encouragement to me and my company. I'm glad to be able to return the favor to the Boost project, as we have benefited very much from this excellent collection of libraries.
I'm also curious to know if you have tried to port the Boost.Math library?
Although it contains a lot of esoteric mathy stuff that are unlikely to be mainstream on a phone app, there are also some very simple-to-use statistics stuff that will/should be widely applicable.
Have you tried this yet? Are there any obstacles that you can foresee?
We did not need Boost.Math in our product so I did not look into building it. I'm happy to say that I just now built it for Windows Phone 8.1 on a Visual Studio 12 2013 system and it compiles and creates the resulting libs like a pro:
<command> b2 toolset=msvc-12.0 windows-api=phone architecture=arm link=static --with-math variant=debug debug-store=database debug-symbols=on pch=off cxxflags=-ZW stage </command>
Libraries created:
(*) libboost_math_tr1-vc120-mt-gd-1_58.lib (*) libboost_math_tr1f-vc120-mt-gd-1_58.lib (*) libboost_math_c99-vc120-mt-gd-1_58.lib (*) libboost_math_c99f-vc120-mt-gd-1_58.lib
The only warning message received, and there are many of these, is LNK4264:
<snippet> msvc.archive bin.v2\libs\math\build\...\libboost_math_tr1-vc120-mt-gd-1_58.lib bin.v2\libs\math\build\...\sph_neumann.obj : warning LNK4264: archiving object file compiled with /ZW into a static library; note that when authoring Windows Runtime types it is not recommended to link with a static library that contains Windows Runtime metadata bin.v2\libs\math\build\...\sph_legendre.obj : warning LNK4264: archiving object file compiled with /ZW into a static library; note that when authoring Windows Runtime types it is not recommended to link with a static library that contains Windows Runtime metadata bin.v2\libs\math\build\...\sph_bessel.obj : warning LNK4264: archiving object file compiled with /ZW into a static library; note that when authoring Windows Runtime types it is not recommended to link with a static library that contains Windows Runtime metadata . . . bin.v2\libs\math\build\...\beta.obj : warning LNK4264: archiving object file compiled with /ZW into a static library; note that when authoring Windows Runtime types it is not recommended to link with a static library that contains Windows Runtime metadata bin.v2\libs\math\build\...\assoc_legendre.obj : warning LNK4264: archiving object file compiled with /ZW into a static library; note that when authoring Windows Runtime types it is not recommended to link with a static library that contains Windows Runtime metadata bin.v2\libs\math\build\...\assoc_laguerre.obj : warning LNK4264: archiving object file compiled with /ZW into a static library; note that when authoring Windows Runtime types it is not recommended to link with a static library that contains Windows Runtime metadata common.copy stage\lib\libboost_math_tr1-vc120-mt- gd-1_58.lib bin.v2\libs\math\build\...\libboost_math_tr1-vc120-mt-gd-1_58.lib 1 file(s) copied. </snippet>
I encountered many of these warnings when building my ported libraries. The online documentation seems to indicate that this is a recommendation. I can tell you that the ported libraries, with these warnings, all function correctly with no problems.
In short, it looks like Boost.Math compiles as-is for Windows Phone 8.1.
Wonderful! (Your success also suggests that many other Boost libraries will port painlessly). Thanks for your work on this. Paul PS I have read MS and other discussions of the warning LNK4264. from https://msdn.microsoft.com/en-us/library/windows/apps/hh771041.aspx I conclude that this is the key clause "You can safely ignore the warning only if the static library is not producing Windows Runtime components that are consumed outside the library itself." There is a lot of other discussions, for example http://stackoverflow.com/questions/14833852/porting-cross-platform-c-librari... o-windows-phone-8-platform --- Paul A. Bristow Prizet Farmhouse Kendal UK LA8 8AB +44 (0) 1539 561830