1.先装好交叉编译的环境,例如mips,安装好mipsel-linux-gnu-g++的工具链
sudo apt-get install gcc-mipsel-linux-gnu
sudo apt-get install g++-mipsel-linux-gnu
下载必要库的源码--没错是源码
libevent prce libz openssl
./configure --host=mipsel-linux-gnu
make
make install
这样环境就完成了。
sudo dpkg-reconfigure dash 选no 关闭dash这步非常重要。
会导致bash运行出错。
2.先用原来环境编译一次
./builf.FluffOS
make
获得并备份以下5个文件:
vm/internal/compiler/grammar.autogen.y
vm/internal/applies_table.autogen.cc
vm/internal/applies_table.autogen.h
vm/internal/efuns.autogen.cc
vm/internal/efuns.autogen.h
make clean命令清除
把以上的5个备份文件复杂回原来的目录里面。
3.修改configure.h
删除
#define malloc rpl_malloc
#define realloc rpl_realloc
两行
4.修改makefile文件
CXX=g++ 改为CAA=g++
增加一项,内容为CXX=mipsel-linux-gnu-g++ 你需要的编译器
复制CXXFLAGS=的所有内容
增加一项,CAAFLAGS=内容为以上复杂的内容,修改其中-march=的内容,该为你需要的cpu型号,例如-march=mips32r2
把USE_JEMALLOC=1 改为USE_JEMALLOC=0
把@echo '#define USE_JEMALLOC 1' >> cc.h 改为@echo '#define USE_JEMALLOC 0' >> cc.h
找到并删除以下3句
@./tools/build_applies.autogen
@./tools/make_func.autogen packages/packages.autogen.fullspec
@./tools/make_grammar.sh $(CXX) $(CXXFLAGS)
找到
$(CXX) $(CXXFLAGS) -x c++ dtrace_compile.cc -o dtrace_compile
修改为
$(CAA) $(CAAFLAGS) -x c++ dtrace_compile.cc -o dtrace_compile
5.修改dtrace_compile.cc
找到64,修改为32
6.make 恭喜你完成了交叉编译
--by mok
2017.8.11
使用前授权 chmod -v +x ./driver
另外自行安装必要的裤头
libpcre.so.1
libc.so.6 libstdc++.so.6
libc6_2.19-18+deb8u10_mipsel.deb libstdc++6_7.1.0-13_mipsel.deb
libevent-2.1.so.6
9月7日版本交叉编译问题
#@ASAN_OPTIONS="detect_leaks=0" ./tools/make_func.autogen packages/packages.autogen.fullspec
把这句注释掉就ok
2017.9.18