① “/”应用程序中的服务器错误。编译器错误消息: 编译器失败,错误代码为 128。
windows下一般就那几种情况:1,程序本身问题2,系统或者环境有问题3,权限问题(这个原因比较多)
② 多台服务器如何分布编译一个android固件
1、首先需要distcc:替换原来的编译器(gcc/g++)。
2、其次要编译android编译。把原来的编译器替换。
3、最后多台服务器就可以进行分布编译一个android固件了。
③ 用服务器做在线编译器
如果是针对传统使用方法的编程语言实现一个的话涉及的内容很杂,包括:
Web服务器+Web服务器与后端程序交互的组件(这个可以用现成的,我用的是nginx+FCGI)
后端程序
后端核心就是一个类似调用系统给的类似execl的API执行一下对应编译工具,用这个API时还得精心处理一下管道,把输出内容导出来显示回网页。
但是因为这类程序和OJ一样,是网络上的公共服务而且居然还允许用户上传代码编译执行,所以问题主要集中在安全处理上,而且安全问题的处理高度依赖操作系统。
以Linux为例,安全方面包括但不仅包括以下内容:
依赖环境构建、沙盒
运行身份,包括GID、UID
资源限制,包括socket、文件操作、核心转储大小、文件数、子进程数等等
syscall限制
执行时间限制,包括运行时间和CPU时间
文件系统压力
Windows下是另一堆问题要解决,比Linux复杂得多(也许是我不太会用Windows)。
我认识一人,自己实现了一个类似Haskell的东西,有和Go Playground差不多的在线运行网页,我问他怎么那么快把那么多东西都搞完了,他说,“整个语言就是用JS实现的,所以有浏览器就能运行,不需要后端”,这也是一种思路。
天互数据