初探vcIDE背后的秘密-为vc项目写makefile,实现自动独立编译

以前在vc下写程序,都是通过IDE写,写完按一下run就开始运行了,从来没有想过内部到底是如何工作,整个工程除了源代码还有十来个文件,也不知道是干吗的。这两天闲来无事探索了一把 。

前段时间接触公司的嵌入式代码,发现都是用makefile进行自动编译,而且整个项目源文件、头文件、库文件、编译工具等分别放在诸如/src、/inc、/bin、/lib之类的目录中,井井有条,编译时只要make一下。最近学习linux,发现linux下诸多软件也是发布源代码,只要简单make一下就可以了。于是我就想,是否vc的项目文件也能这样做呢?于是开始尝试:

首先我用vc自动生成一个makefile文件,进行分析,发现vc编译的过程基本上就是:先编译资源文件,然后编译源文件,最后链接。通过这一步,我知道了编译器、链接器等分别是什么名字,并得到了一个可参考的编译、链接参数。

其次,将cpp文件均考至src目录下,h文件均考至inc目录下,其他vc库文件(vc安装目录/vc98下,包括/include、/lib、/mfc这几个目录),并将cl、link、rc这三个基本工具(均在vc安装目录下的vc98/bin和/common/msdev98/bin里面)考至bin目录下

然后尝试用命令行编译,但无法通过,主要都是少了一些dll之类的东西。反正这些都在vc安装目录下,自己去找一下吧。唯一值得一提的是c1.dll、c2.dll、c1XX.dll这三个文件如果缺少不会准确提示你,只会发生D2027错误,在这一块我绕了很长时间。

然后就开始写makefile和批处理文件。如果心情好,可以写好看点。象我没耐心,就随便写一个能用的凑合了。

最后一步非常需要耐性。将vc自带的库去掉,反复编译,提示缺少哪个就考哪个,这样可以过滤掉所有不需要的库(所有的库有100多M呢),这样得到的库文件就是最精简的。

看看成果。原来的项目文件夹将近13m,现在的文件夹17M。看起来多了4M,但是由于不需要安装vc就可以独立编译,显然更利于交流。

 

点此下载我的五子棋项目

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章