整合了大量的代码. 并让工程可以编译通过