Build Slic3r on Windows // 如何在Windows上编译Slic3r
下载Strawberry Perl 5.22 64bit绿色版,解压缩到某个地方,比如C盘根目录,比如
C:\strawbrry-perl-5.22.2.1-64bit-portable
下载Boost 1.59,解压缩到某处,比如
C:\boost_1_59_0
注意,下载的Strawberry Perl内有个portable.bat,可以设置好Perl运行环境,而且那个Perl附带了gcc 4.9。下面所有的命令都在这个命令行环境下执行。
在那个命令提示符内切换到Boost的解压缩目录,输入
bootstrap.bat mingw
b2 toolset=gcc link=static runtime-link=static threading=multi --with-thread stage
注意这里只编译boost.thread库,末了在stage目录下会看到生成的静态库,包括thread、system等等依赖库。
下载Slic3r的源代码,放在一个地方,比如
C:\Slic3r-repo
打开xs/Build.PL文件,看到第41行
for my $path (glob('C:\dev\boost*'), glob ('C:\boost*'))
可以直接把第二个改成我们的Boost路径C:\boost_1_59_0
for my $path (glob('C:\dev\boost*'), glob ('C:\boost_1_59_0*'))
然后输入
perl Build.PL
开始编译。
如果没问题,下面开始GUI。
由于Strawberry Perl附带的GCC 4.9生成C++异常代码方面存在BUG,所以Wx有个单元测试一定过不去,卡在那个跳窗口的地方,而且会不停的继续尝试而且不停的出错。所以我们不能用从Slic3r的Build.PL开始编译,必须用Perl安装包管理程序cpanm来安装依赖。
直接输入
cpanm --force Alien::wxWidgets
cpanm --force Wx
等待之后,如果没有错误,则再来输入perl Build.PL --gui安装剩下的依赖,然后应该大功告成。
用PP打包就很简单了,自己可以尝试官方的说明自己做。