前段时间一直在做蓝牙的连接的试验,主要目标是让arm开发版上的linux能够和我的手机上的wince之间建立蓝牙的连接进行通信.经过一段时间之后 这部分的任务终于搞定了,剩下的任务就是集中精力开发基于蓝牙的远程控制程序,让手机能够无线控制其他设备.目前在x86上的linux做了demo程 序,并且将其中的server端移植到了arm开发版上.
在这段时间的编码过程中,主要的收获是c语言的编码以及 slickedit下利用开发环境下的一些工具加快开发的效率.
因为以前一直是用c++,今年才开始转向c,很多c的思维都已经模糊了,甚至语法也经常和c++混为一谈,通过这次的项目我又重新熟悉c的编码思维.
另外一个收获就是如何利用开发环境有效的组织管理项目.以前在写程序的时候很少注意工作空间,项目以及编译设定(就是选debug还是release,我 不知道这个叫什么哈).但是这次这个项目有所不同,虽然项目不是很大,但是涉及到的内容却不少,有linux下的部分也有win下的部分,单在linux 下就很麻烦了--要同时写server和client两个程序,编译,并且调试.而这两个程序开始是在x86,后来又要转到arm上运行.之前在 emacs下写点小程序的我一下子不知从何入手,感觉是很简单,但是没有有效的工具来管理的话,却有觉得非常麻烦.
后来我开始使用SlickEdit.这是个非常不错的编译环境,不论是编辑,编译还是调试都得心应手,同时我也注意到了以前在vc下就有的工作空间以及工 作区下包含项目的用意.如果是写一个单独的程序,只生成一个可执行文件的话,似乎不用注意这些,但是c/s程序要生成2个应用程序,而且要十分方便能保持 同步,应该怎么办呢?解决的办法就是设定一个工作区并在下边创建2个项目,一个为server,一个为client,需要调试的时候生成整个工作区就可以 了(现在vs.net下边好像叫解决方案,应该是一个意思).
用这种方法来写程序的时候我遇到了一个小问题.我的目录结构是server.c和client.c在一个目录下,而大部分共同的代码在./lib子文件夹 下,然后在slickedit中分别创建2个项目,包含相应的文件,然后编译.编译的时候会将编译生成的文件放在./debug或者./release文 件夹下(看你怎么选),但是由于我两个项目在一个工作区内只会有一个./debug文件夹,编译两个项目的时候就会产生冲突,导致一些同步的问题.问题虽 然简单,但是解决毕竟要花时间.开始的时候我在环境的设置选项里找解决办法,怎么也没有找到控制输出位置的选项,后来想到自己改makefile.但是工 程文件一改变,重新生成makefile又会出现问题.最后我终于注意到了我长期忽视的编译方式选择(就是选debug还是release那个)如果是选 debug就会把编译结果放在./debug文件夹,那么我重新建立一个编译方式debugserver,就可以存放server的编译结果,在创建一个 debugclient同理.这些问题就解决了,
之后的编写工作一直很顺利,一直到今天需要把server端的程序移植到arm上.于是有建立一个编译方式debugs_arm,设置了编译器为制定的arm-linux-gcc,指定了包含文件的位置,以及库的包含位置,一切也都顺利的搞定了.
以上都是写很浅显的东东,只是一个总结,也希望能给一些人节省一点时间.希望大家多多交流,我的email:ifqqfi@gmail.com.
在这段时间的编码过程中,主要的收获是c语言的编码以及 slickedit下利用开发环境下的一些工具加快开发的效率.
因为以前一直是用c++,今年才开始转向c,很多c的思维都已经模糊了,甚至语法也经常和c++混为一谈,通过这次的项目我又重新熟悉c的编码思维.
另外一个收获就是如何利用开发环境有效的组织管理项目.以前在写程序的时候很少注意工作空间,项目以及编译设定(就是选debug还是release,我 不知道这个叫什么哈).但是这次这个项目有所不同,虽然项目不是很大,但是涉及到的内容却不少,有linux下的部分也有win下的部分,单在linux 下就很麻烦了--要同时写server和client两个程序,编译,并且调试.而这两个程序开始是在x86,后来又要转到arm上运行.之前在 emacs下写点小程序的我一下子不知从何入手,感觉是很简单,但是没有有效的工具来管理的话,却有觉得非常麻烦.
后来我开始使用SlickEdit.这是个非常不错的编译环境,不论是编辑,编译还是调试都得心应手,同时我也注意到了以前在vc下就有的工作空间以及工 作区下包含项目的用意.如果是写一个单独的程序,只生成一个可执行文件的话,似乎不用注意这些,但是c/s程序要生成2个应用程序,而且要十分方便能保持 同步,应该怎么办呢?解决的办法就是设定一个工作区并在下边创建2个项目,一个为server,一个为client,需要调试的时候生成整个工作区就可以 了(现在vs.net下边好像叫解决方案,应该是一个意思).
用这种方法来写程序的时候我遇到了一个小问题.我的目录结构是server.c和client.c在一个目录下,而大部分共同的代码在./lib子文件夹 下,然后在slickedit中分别创建2个项目,包含相应的文件,然后编译.编译的时候会将编译生成的文件放在./debug或者./release文 件夹下(看你怎么选),但是由于我两个项目在一个工作区内只会有一个./debug文件夹,编译两个项目的时候就会产生冲突,导致一些同步的问题.问题虽 然简单,但是解决毕竟要花时间.开始的时候我在环境的设置选项里找解决办法,怎么也没有找到控制输出位置的选项,后来想到自己改makefile.但是工 程文件一改变,重新生成makefile又会出现问题.最后我终于注意到了我长期忽视的编译方式选择(就是选debug还是release那个)如果是选 debug就会把编译结果放在./debug文件夹,那么我重新建立一个编译方式debugserver,就可以存放server的编译结果,在创建一个 debugclient同理.这些问题就解决了,
之后的编写工作一直很顺利,一直到今天需要把server端的程序移植到arm上.于是有建立一个编译方式debugs_arm,设置了编译器为制定的arm-linux-gcc,指定了包含文件的位置,以及库的包含位置,一切也都顺利的搞定了.
以上都是写很浅显的东东,只是一个总结,也希望能给一些人节省一点时间.希望大家多多交流,我的email:ifqqfi@gmail.com.