--- a/xs/src/libslic3r/TriangleMesh.cpp	(revision 92abbc42dfdd5385c1f9c3a450e2f3da835f8b8d)
+++ b/xs/src/libslic3r/TriangleMesh.cpp	(date 1607117258000)
@@ -22,6 +22,8 @@

 namespace Slic3r {

+using boost::placeholders::_1;
+
 TriangleMesh::TriangleMesh()
     : repaired(false)
 {

--- a/src/CMakeLists.txt	(revision 92abbc42dfdd5385c1f9c3a450e2f3da835f8b8d)
+++ b/src/CMakeLists.txt	(date 1607117046000)
@@ -115,7 +115,7 @@
 find_package(Threads REQUIRED)

 set(Boost_NO_BOOST_CMAKE ON)
-find_package(Boost REQUIRED COMPONENTS system thread filesystem)
+find_package(Boost REQUIRED COMPONENTS system thread filesystem nowide)

 set(LIBDIR ${CMAKE_CURRENT_SOURCE_DIR}/../xs/src/)
 set(GUI_LIBDIR ${CMAKE_CURRENT_SOURCE_DIR}/GUI/)

--- a/xs/src/libslic3r/PrintObject.cpp	(revision 92abbc42dfdd5385c1f9c3a450e2f3da835f8b8d)
+++ b/xs/src/libslic3r/PrintObject.cpp	(date 1607117227000)
@@ -4,12 +4,15 @@
 #include "Geometry.hpp"
 #include "Log.hpp"
 #include "TransformationMatrix.hpp"
+#include <boost/bind/bind.hpp>
 #include <algorithm>
 #include <vector>
 #include <limits>

 namespace Slic3r {

+using boost::placeholders::_1;
+
 PrintObject::PrintObject(Print* print, ModelObject* model_object, const BoundingBoxf3 &modobj_bbox)
 :   layer_height_spline(model_object->layer_height_spline),
     typed_slices(false),

--- a/xs/src/libslic3r/GCodeSender.hpp	(revision 92abbc42dfdd5385c1f9c3a450e2f3da835f8b8d)
+++ b/xs/src/libslic3r/GCodeSender.hpp	(date 1607117162000)
@@ -7,7 +7,7 @@
 #include <string>
 #include <vector>
 #include <boost/asio.hpp>
-#include <boost/bind.hpp>
+#include <boost/bind/bind.hpp>
 #include <boost/thread.hpp>
 #include <boost/core/noncopyable.hpp>

@@ -15,6 +15,9 @@

 namespace asio = boost::asio;

+using boost::placeholders::_1;
+using boost::placeholders::_2;
+
 class GCodeSender : private boost::noncopyable {
     public:
     GCodeSender();

--- a/xs/src/libslic3r/SLAPrint.cpp	(revision 92abbc42dfdd5385c1f9c3a450e2f3da835f8b8d)
+++ b/xs/src/libslic3r/SLAPrint.cpp	(date 1607117248000)
@@ -7,9 +7,12 @@
 #include <iostream>
 #include <complex>
 #include <cstdio>
+#include <boost/bind/bind.hpp>

 namespace Slic3r {

+using boost::placeholders::_1;
+
 void
 SLAPrint::slice()
 {

--- a/xs/src/libslic3r/ConfigBase.cpp	(revision 92abbc42dfdd5385c1f9c3a450e2f3da835f8b8d)
+++ b/xs/src/libslic3r/ConfigBase.cpp	(date 1607117107000)
@@ -16,7 +16,7 @@
 #include <boost/config.hpp>
 #include <boost/foreach.hpp>
 #include <boost/lexical_cast.hpp>
-#include <boost/nowide/cenv.hpp>
+#include <boost/nowide/cstdlib.hpp>
 #include <boost/nowide/fstream.hpp>
 #include <boost/property_tree/ini_parser.hpp>
 #include <boost/property_tree/ptree.hpp>

--- a/xs/src/libslic3r/GCodeTimeEstimator.cpp	(revision 92abbc42dfdd5385c1f9c3a450e2f3da835f8b8d)
+++ b/xs/src/libslic3r/GCodeTimeEstimator.cpp	(date 1607117194000)
@@ -1,9 +1,12 @@
 #include "GCodeTimeEstimator.hpp"
-#include <boost/bind.hpp>
+#include <boost/bind/bind.hpp>
 #include <cmath>

 namespace Slic3r {

+using boost::placeholders::_1;
+using boost::placeholders::_2;
+
 void
 GCodeTimeEstimator::parse(const std::string &gcode)
 {

--- a/xs/Build.PL	(revision 92abbc42dfdd5385c1f9c3a450e2f3da835f8b8d)
+++ b/xs/Build.PL	(date 1607117077000)
@@ -151,7 +151,7 @@
 }
 # In order to generate the -l switches we need to know how Boost libraries are named
 my $have_boost = 0;
-my @boost_libraries = qw(system thread filesystem);  # we need these
+my @boost_libraries = qw(system thread filesystem nowide);  # we need these
 # check without explicit lib path (works on Linux)
 if (! $mswin) {
     $have_boost = 1

--- a/xs/src/libslic3r/SupportMaterial.cpp	(revision 92abbc42dfdd5385c1f9c3a450e2f3da835f8b8d)
+++ b/xs/src/libslic3r/SupportMaterial.cpp	(date 1607118181000)
@@ -4,6 +4,8 @@
 namespace Slic3r
 {

+using boost::placeholders::_1;
+
 PolylineCollection _fill_surface(Fill *fill, Surface *surface)
 {
     PolylineCollection ps;
