实际的工作中,很多时候都需要在项目编译完成后做一些工作,或是在编译前做一些准备工作,它们是重复性的,如果手动操作是一件很麻烦的事情,VS中提供了生成前/生成后执行命令,使用脚本就可以完成大部分需要的操作.
例子(生成后自动将头文件和库文件放置在合适的位置)
whenbuilded.bat
copy /y ..*.h .D:/MyLib/Include
copy /y ../Debug/*.lib ../Dir/*.dll .D:/MyLib/Lib
将这个批处理文件设置为生成后事件就可以了.
或者,在生成前要注册一个COM组件:MyCOM.dll
beforebuild.bat
regsvr32.exe /i MyCom.dll
将这个批处理文件设置为生成前事件就可以了.
(注意把它们放在项目的目录中)
Linux下的Makefile文件中,可以在某生成项中添加LShell命令,或单独加入一个项用来执行自动处理,一般将其放在最后(生成完毕之后).
模板:
CXX=g++
AllObjects = xxxx.o
#ShellCmd表示要执行的Shell命令,是一个独立的项
FinalCreated: ShellCmd libMine
ShellCmd: $(AllObjects)
ls -l
cp *.h destdir
cp *.so destdir
这是最简单的应用,可以用你的脚本来扩展它.
其实这些简单的工作能减少你不少工作负担,因为项目一般都有一个反复的调试过程.