Minix自动交叉编译工具
Minix自动交叉编译工具
地狱门神
https://files.cnblogs.com/Rex/AutoCrossCompile.rar
环境:
1、Minix 版本 3.1.2a VMware镜像版
telnet和ftp已配置好,参见“在Windows上使用telnet和ftp连接Minix的步骤”。
2、.Net Framework 2.0
修改源代码需要.Net Framework 3.5
原理:
使用ftp连接到Minix更新文件。
为了加快更新速度,在AutoCrossCompile.xml中缓存了文件的修改时间。
使用telnet连接到Minix执行编译命令。
使用方法:
AutoCrossCompile <TelnetIP[:Port],User,Password,TerminalType> <FtpRoot> <RemotePath> <LocalPath> <FileNameRegex> [RemoteCommandFile] [-r] [-f]
TelnetIP Telnet的IP地址
Port Telnet的端口号
User 用户名
Password 密码
TerminalType 终端种类,应选vt100
FtpRoot Ftp根地址
RemotePath 相对于Ftp根地址的远程路径
LocalPath 本机硬盘上的文件夹路径
FileNameRegex 所有需要上传的文件的文件名满足的正则表达式
RemoteCommandFile 要通过Telnet执行的命令文件
IgnoreBefore 需要忽略的文件的修改时间的上限,也就是说该时间之前的所有文件均会被忽略
-r(Recursive) 循环LocalPath的子文件夹
-f(ForceUpdate) 强制更新所有文件,不管修改时间
示例:
这是一个叫做pipes的示例项目的命令行。
AutoCrossCompile.exe 192.168.205.128,root,root,vt100 ftp://ftproot:root@192.168.205.128/ /ex1 I:\Minix\FTP\pipes "^([^.]*\.[ch]|[Mm]akefile)$" Commands.cmd -r -f
其中
Commands.cmd包含了远程命令:
make
./pipes
批处理:
Bin\Install.cmd是一个能将当前AutoCrossCompile.exe的路径注册为环境变量的批处理。
使用该批处理并重启explorer后,可以在一个pipes项目所在的文件夹中使用一个包含下面代码的批处理文件。
%AutoCrossCompile% 192.168.205.128,root,root,vt100 ftp://ftproot:root@192.168.205.128/ /ex1 %CD% "^([^.]*\.[ch]|[Mm]akefile)$" Commands.cmd -r -f
示例2:
这是一个处理Minix源文件同步的批处理文件。
%AutoCrossCompile% 192.168.205.128,root,root,vt100 ftp://ftproot:root@192.168.205.128/ /usr/src %CD% "^([^.]*\.[chs]|[Mm]akefile(\.in)?)$" Commands.cmd 2009-04-14 -r
集成到Visual Studio:
AutoCrossCompile第一次对某个文件夹运行后,会自动将所有参数(除去文件夹路径和-f选项)记录到AutoCrossCompile.xml文件。
此后只要运行
%AutoCrossCompile% %CD%
就能和之前一样运行。
以Visual Studio 2008中文版为例。
在Visual Studio中,创建一个空项目包含项目的源文件。
然后打开菜单的“项目”-“<项目名> 属性”指向的项目属性窗口。
把“配置属性”-“常规”-“配置类型”设置为“生成文件”。
把“配置属性”-“调试”-“命令”设置为$(AutoCrossCompile)。
把“配置属性”-“调试”-“命令参数”设置为$(ProjectDir)。
把“配置属性”-“NMake”-““生成”命令行”设置为echo。
把“配置属性”-“NMake”-““全部重新生成”命令行”设置为echo。
把“配置属性”-“NMake”-““清除”命令行”设置为echo。
在项目文件夹下,即vcproj文件所在文件夹下,添加文件Commands.cmd,其中写入编译指令。
例如:
cc pipes.c -o pipes
然后在cmd命令行中执行初始的指令(这个时候Minix的Ftp和Telnet需要能够连接),例如:
AutoCrossCompile.exe 192.168.205.128,root,root,vt100 ftp://ftproot:root@192.168.205.128/ /ex1 I:\Minix\FTP\pipes "^([^.]*\.[ch]|[Mm]akefile)$" Commands.cmd -r -f
之后就可以直接在刚才创建的项目中按F5执行交叉编译过程了。
用户使用协议:
见License.zh.txt。
Minix自动交叉编译工具许可证(三款BSD许可证)