使用MakeAgent + Source insight搭建跨系统IDE开发平台
Source insight是一个功能很强大的源码浏览,编辑软件。相信很多研究过linux内核源码的人都选择用Source insight。甚至很多从事嵌入式开发的人员都选择在source insight中作源码开发,然后再回到linux中编译,链接。但老是在Windows和虚拟机的linux中切换,还是略显不便,更重要的是编译出错时,不能像其它Windows下的IDE开发环境那样直接定位出错的地方。
相信很多开发人员都会选择搭建这样的开发平台:windows + VMware + linux + samba服务+ telnet服务+ source insight:
1、首先在windows下安装VMware+linux->
2、在linux中运行samba和telnet服务,并共享出linux下的开发目录->
3、通过windows下的telnet登陆到linux中->
4、在WINDOWS下操作网络硬盘,用source insight在网络硬盘上创建工程(工程文件不放在windows本地目录,而放在源码目录的网络硬盘上是为开发方便)
5、用source insight作为IDE开发平台。
虽然搭建了以上平台后,工作方便了一些,特别对于驱动开发者。但每次开发都需用telnet到linux,并在Windows和虚拟机的linux中切换,还是略显不便,更重要的是编译出错时,不能像其它Windows下的IDE开发环境那样直接定位出错的地方。
下面的描述均假设你已搭建了上面的环境,或你会搭建上面的环境为前提,若你还不会搭建,请自行google或baidu一下,此处不作讲解。
为了搭建像类似VC那样的IDE平台,使编译,错误定位均在source insight中进行,而无需事先telnet或登陆到linux中。本人刚好利用最近的休息时间,为source insight编写了一个小软件,专门为linux的make命令做网络代理(即利用source insight的custom commands功能调用本软件,本软件将通过网络与运行于linux下的另一服务进程通信完成make的所有命令,并将linux下的make结果发送回本软件,并显示,最后由source insight捕获并分析结果)
软件安装:1、下载软件包后解压后共有三个文件夹,其中“Windows代理端-安装版(.net VC++)”文件夹为.net VC++编写的WINDOWS代理端,运行里面的setup.exe即可安装,但由于使用.net环境,在没有安装.net 3.5的机子上安装向导将自动引导用户下载安装.net 3.5然后再自动安装MakeAgent,下载过程将是非常漫长(.net 3.5大约有250MB)。所以建议大家使用另一个版本的文件(除非你确认你的机器上已经安装了.net 3.5)——“Windows代理端-绿色版-(VB6.0 + VC++)”,它是临时为解决部署.net 3.5困难而使用VB重写的一个免安装绿色版本,功能和外观同.net VC++写的那个完全相同。
“Windows代理端-绿色版-(VB6.0 + VC++)”免安装,只需将文件夹内的所有文件复制到你想放置的位置即可。其中的client.exe文件为控制台文件,source insight即调用client.exe进行传递编译命令。
“linux服务器端”文件夹即为linux下的服务进程。安装方法和注意事项如下:
本server.tar包内的服务程序是在Fedora9.0下编译生成的,极少数会出现如下情况-->:
若你使用的是其它的版本的linux且解包后无法运行,则可能是由于编译器版本或所引用库不同所造成,出现这种情况请向我获取原码,在你的机器上重新编译即可。
解包:将server.tar复制到linux目录(自已想放哪里就放哪里),执行tar -xvf server.tar即解包出server(只有server一个文件)
你有两种方法来运行server,但建议使用第2种方法,因为它更简单,快捷:
1、每次运行linux系统后,使用root帐户登陆,并进到server所在目录,手动运行server(输入./server回车即运行),之后服务就建立,你可以不必再待在linux环境中了,编译工作可在windows下轻松进行。
2、配置/etc/rc.d/rc.local文件,让server在linux启动时自动运行,这样你连登陆linux都不需要了。修改如下:
找到rc.local,在最后面加入server所在的位置的绝对路径/server,如你的server放在/root下,则在rc.local最后面加入: /root/server
需要注意的是,使用这种方法时,若你有自已的编译器(不是系统自带的gcc)请在/root/server前一行输出你自已的编译器的所在路径作为环境变量,如我的系统中除了系统自带的gcc外,还有自已的arm-linux-gcc,它放在/usr/local/arm/4.3.2/bin中,我在rc.local最后面需加以下两行:
export PATH=$PATH:/usr/local/arm/4.3.2
/root/server
至于为什么要加入export PATH=$PATH:/usr/local/arm/4.3.2是因为使用第2种方法启动server时,在server启动时,你在其它地方设置的环境变量还没有获得执行export的机会(需有用户登陆才会执行标准环境变量设置文件),所以你需在上面输出你想要的环境变量。
按以上操作完毕后,重启linux后,运行ps –e查看是server是否运行,如下:
至此linux端OK。
回到windows,在cmd 进入Windows代理端所在目录,下运行“client ip(linux IP) m /”若出现如下图示,则说明代理已建立起来
关于client.exe命令说明:client + IP + CMD + PATH
IP->指server运行的linux机IP
CMD->make命令字:m/ma/ml m即make、 ma即make all、ml即make clean。
PATH->要编译的源码在linux中的绝对路径(即makefile文件所在目录)。
例如要编译的文件在linux系统下的/home/project目录下,linux IP地址为192.168.1.5则执行
Client 192.168.1.5 m /home/project
接下来打开source insight 将鼠标移到工具栏空白位置,右击鼠标,如图调出build工具栏
选择菜单栏的Options/custom commands在弹出如下窗口,Command栏选择Build Project并进行如下设置:(此处是设置make命令:client ip m path)
上面设置完成后,在Command栏选择Clean Build并进行如下设置:(此处是设置make clean命令:client ip ml path)
上面设置完成后,在Command栏选择Compile File并进行如下设置:(此处是设置make all命令:client ip ma path)
以上设置完成后,点close按钮完成退出上面弹口,至此source insight的build工具栏已经可用,控制linux下的make命令如同source insight本身操作一样,下面我以编译我的linux-2.6.32的linux内核为例,一同体验一下自己DIY的开发平台,为了让大家体验到出错自动定位的功能,我特意在linux-2.6.32源码中加入语法错误,以便产生错误:
编译完成后source insight显示编译结果,并定位错误:
make all 自己试试吧
是不是source insight更像专业的集成编译功能的IDE环境了?源码编写,修改,编译,错误定位全部在source insight中进行,无需切换到linux中。如果你不想在本机上装虚拟机,而利用网络上的linux服务器,一样可以搭建这样的系统,因为MakeAgent本来就是按服务器+客户机的方案设计的。
注意:
1、若client无法connect到server,请检查windows端与linux端网络是否为通,可用ping命令验证。若ping通后仍无法connect,请将linux的防火墙和windows下的防墙均关闭,这些防火墙可能会拦阻client与server间的通信。
2、linux下共享到window下的工程目录请开启所有权限(chmod –R a+rwx目录,chown nobody:nobody目录),以免要在windows下操作该共享目录时遭拒绝。
3、MakeAgent只是将make命令传入linux下的server服务程序执行make操作,所以编译要顺利执行需要Makefile文件,同理make all 和make clean命令也需Makefile文件中有它们的目标点。因为整个工程都映射到了windows网络硬盘下了,所以Makefile文件也建议在source insight中打开,随时可更改,以便适应自已的需要。
等以后有时间,可考虑在MakeAgent中加入配置向导,根据配置向导中的配置项和工程文件自动生成Makefile,实现工程文档的管理。如果有需要所有源码的,请与我联系。也请你修改后将其开源,让大家享受开源的好处。
MakeAgent软件包下载地址:
下载地址1(放在csdn上,即该连接需要你在csdn上注册):http://d.download.csdn.net/down/3003863/skyblue2003
下载地址2(放在我的邮箱中,通过地址引用出来,目前测试生效,不知以后是否仍生效):http://mail.sohu.com/bapp/82/download/LMEQAAAANEENSP2NOMGAAAAAGEYTGLRYHAXDONZOGU3XGDYAAAAGY2TDGIZDKQDTN5UHKLTDN5WXGNIAAAAGG5LSF4YTEOJWGAZDSOJUGQXFMOBRGFETSZJQGAYDKN2NGE4DCNZSGMXG26BYGIXG2YLJNQXHG33IOUXGG33NNEAAAAAANESIQRQANEAAAAAAOMHAAAAANVSXG43BM5SS64TGMM4DEMTTBUAAAACNMFVWKQLHMVXHILTFNVWA====.8226a89a90af523e4f67752342091f34.4
作者:skyblue
QQ:35534113
E-mail:[email protected]