一个GNU项目的编译过程记录

来源:互联网 发布:淘宝内网ip是什么意思 编辑:程序博客网 时间:2024/05/16 17:27
最近觉得自己需要从成功的项目里,学习点人家的设计和实现.别的公司是如何设计和开发一个完善的系统的.虽然现在我开发的产品的客户端是我,一行行代码敲出来的,但是那时候刚毕业,代码的架构和设计的思想很多地方现在回想起来不是很完善.不过真的很庆幸,我一毕业就有这样的机会.以前我在学校的时候不喜欢看别人的代码,其实很简单,那时候对程序设计的理解没有现在这么深(或许说不上深).看了也看不懂.现在翻翻jolt得奖的基本关于设计的书,受益还是挺多的.现在我开始关注一些开源的项目了. 免费又能看到牛人的代码,还是很不错的.:)没出息了点.其实我的最爱还是爱看软工和管理方面的.唉~~万事慢慢来.

简单说说由来吧.搞定一个弹出告警框一直在桌面上显示的问题.搞了半天搞不定.google了也没g出所以然来.于是想到了sourceforge.利用其搜索功能,找到很多项目用了这个功能.  说道搜索不由得想到:我这人爱自己搜索,不爱问别人.有同事说过:凡是你遇到的问题,基本上你不会是第一个遇到这个问题的人.网上肯定有解决办法的.唉,但是很多人不愿意搜索,愿意等着别人告诉他怎么做.

于是乎 搭建SVN 加上原有的CVS,拖回来 VirtualDimension 一个虚拟的桌面管理系统.
想把它编译了.
以前一直在windows下面用VC6-VC8等做开发,linux的东西就是学校学网络时,学了点,早忘了.放狗.

VirtualDimension下面有build文件,看了看,知道了,要下面这么多东东:
VD can be build using the following:
    - GCC version 3.2.3 (as in Mingw3.1.0.1. DO NOT UPDATE GCC: newer versions crash VD...)
    - Latest binutils (2.15.91-20040904-1)
    - Latest w32api (v3.5)
    - Latest mingw runtime (v3.9)

You will also need MSYS or cygwin, to provide make and the shell commands used during the build.

To build, go into the directory where you have the sources, and type:
    make

This will build VD into a directory called 'mingw-release'.
去google吧,下来这么多.别人爱先看文档怎么装,怎么配.我觉得好的软件,应该全自动的,呵呵.没办法人家linux下不信这套,大部分还得自己慢慢配置,唉,想当年配置tomcat/配置weblogic那个头大啊.我先装上然后根据错误来慢慢解决遇到的问题.这个习惯可能不好,但是也锻炼了快速发现问题的能力:)吹牛.

总结一下,需要mingw3.1 其实高版本也可以,只要w32api binuntil runtime的一致就行(只要能编译通过就一致了).其中w32api比较郁闷,版本不同有些函数没申明,其实这个版本必须w32api3.6才能编译通过.要不然会出现MIM_STYLE undefined 等等类似错误.

需要安装的mingw/mssys/ 然后将各自下面的bin 目录 例如C:/MinGW/bin;C:/MSYS/bin加到系统path环境变量中.再 把mingw32-make也安装到C:/MinGW,再将C:/MinGW/bin/下的mingw32-make.exe复制为make.exe(原来的mingw32-make.exe还有用,不要动)这个是一网友文章里的,不知道是否必须这样.反正没有make你肯定编译不通过,老老实实这样吧,如果要知道为什么,认真看看msys和mingw的用法就ok了,我一般不深入往下看,遇到问题再说:).
装好后再vd目录下make吧,如果出现undefine错误,那就是w32api的版本不正确.网上重新下个版本,解压后覆盖原来的include和lib就可以了.

MinGW
又称Mingw32,是将GNU开发工具移植到Win32平台下的产物,包括一系列头文件(W32API)、库和可执行文件.
MSYS: Minimal GNU(POSIX)system on Windows,是一个小型的GNU环境,包括基本的bash,make等等。是Windows下最优秀的GNU环境。(是否厌倦了Cygwin蜗牛般的shell环境,试试MSYS中的rxvt吧)

后记:那天初看了这个程序的部分代码,哎呀.把winapi用的这么熟练值得学习啊.

对了,最好不要放在装有VS的机器上来编译,我用虚拟机做的,
Error makefile 21: Command syntax error 不知道为啥子.同样的配置在干净虚拟机上就没问题

原创粉丝点击