首页UC › Linux远程编译

Linux远程编译

嵌入式Linux的开发环境主要为以下两种:

1.虚拟机装Linux,使用虚拟机里面的的eclipse或者kde等软件编写编译代码;

2.虚拟机装Linux,使用VC写代码,然后用autotool等工具生成Makefile或者干脆自己写Makefile或其他编译规则来编译;

       第二种方式比第一种方式的先进性表现在写代码的方便,编译速度也比第一种快,但还是没有逃脱使用虚拟机的命运。

       虚拟机编译代码是比较慢的,尤其是代码庞大的工程,为了加快编译,我们一般都会再申请几台电脑,装纯Linux(我们一般称其为编译服务器),再使用distcc等分布式软件分布式地编译我们的代码,速度也确实比单纯的虚拟机编译快一点。但有些同事还觉得不够快,直接拷贝源代码进编译服务器编译,彻底摆脱虚拟机,编译完了再拷贝编译生成的可执行文件回本地电脑,编译速度也确实快了,但这种方式不方便修改代码,他们一般要改多的代码的话一般在本地使用VC修改,然后传回编译服务器编译,少的话就用vi修改,这种IDE的复杂性可能会很大的阻碍我们开发的效率。

        有没有什么方法可以让我们在本地使用VC写和修改代码,编译的时候再使用编译服务器的CPU的处理能力来帮我编译链接我们的代码,并省去我们拷贝代码进编译服务器和拷贝可执行文件到本地的这些麻烦的动作呢?

        要达到这个目的,我们必须得把我们的源代码目录共享给编译服务器,而在Linux和Window的共享且Window必须得作为Server的情形下,Samba不行,NFS可以吗?Windows可以开NFS Server吗?找了下资料是可以的,Miscrosoft免费提供一个SFU软件,使用它,你就可以在Windows里面很简单地开一个NFS Server并把你的源代码目录共享给编译服务器,编译服务器作为一个NFS Client挂载你Windows共享的源代码目录,在编译服务器上进入目录并执行编译命令来编译你共享的代码。今天上午搭建了一下SFU,并测试编译,速度可达到你拷贝代码进编译服务器的编译的操作。

     使用SFU,可以借助编译服务器的CPU处理能力来编译你Windows本地的代码,修改代码可以使用本地的IDE,不用拷贝代码进编译服务器,编译生成的文件也不用你从编译服务器拷贝回来,一切生成的文件都放在你本地的磁盘,这样就可以大大节省你编译的时间。

——————————————————————————————-

微软提供的NFS Server软件

最近需要在Windows系统导出NFS,供一块开发板开发Linux应用程序。在cygwin中有nfs-server软件包(参考:Windows上的NFS Server 软件),但在我公司的电脑上,软件包安装的portmap服务无法启动,因而无法使用。因工作环境限制,必须找到windows版本的NFS Server软件,否则后续的工作就要停止。
网上google了两天,发现微软提供的Services for UNIX(SFU)软件包里包含NFS Server,可以满足我的要求。目前SFU的版本是3.5,于2004年1月发布,可免费使用。SFU软件包还包含其他的UNIX功能组件、Unix shell环境和SDK,但版本太老,不推荐使用。

1、安装
SFU软件包的下载地址是: “http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=896c9688-601b-44f1-81a4-02878ff11778”
下载的软件包程序是自解压程序,运行后解压到某个目录内,然后运行其中的setup.exe程序安装软件包。安装时选择custom模式,只选择安装NFS Server,和相应的认证模块(安装程序会提示安装此认证模块),其他步骤按缺省设置安装即可。安装完毕后需要重启机器。

2、配置
(1)准备UNIX的用户、组的描述文件passwd和group
passwd:
root:x:0:0:root:/root:/bin/sh

group:
root:x:0

上面的是最简单的内容,可以根据实际情况添加其他用户、组。

(2)将UNIX的用户映射到Windows用户
在 “开始”菜单启动windows for UNIX–>Services for Unix Administration,然后在程序界面上点击左面的User Name Mapping项,进行配置:在configuration标签下,选择Use password and Group files,填入上步骤准备的passwd和group文件的文件路径;在Maps标签下,将UNIX用户映射到合适的Windows用户。配置完成后,点程序界面右上角的Apply按钮,使配置生效。

3、将Windows的目录按NFS导出
在Windows系统中选择要导出的目录,点鼠标右键,在弹出菜单中选择“属性”菜单项。然后在属性配置对话框内,点NFS Sharing 标签,选它下面的share this folder。点“确定”按钮后,该目录就能按NFS导出了,目录的图标也有了变化。

4、客户端安装NFS共享目录
客户端用mount命令来安装NFS共享目录。我的客户端是一块Linux的开发板,安装时还需要在mount命令中添加 -o nolock 选项,否则无法正确安装NFS共享目录。

5、对客户端的读写权限控制
可以通过Client Groups对客户端的读写权限进行控制。在Services for Unix Administration程序中,点击左面的Server for NFS项,选择Client Groups标签,添加客户端组和所包含的客户端的IP地址。配置完成后,点程序界面右上角的Apply按钮,使配置生效。
在要导出的NFS目录设置对话框中,点NFS Sharing 标签右下角的Permissions按钮,把刚才设置的客户端组Add进来,并设置合适的读写权限。

发表评论