實際的工作中,很多時候都需要在項目編譯完成後做一些工作,或是在編譯前做一些準備工作,它們是重複性的,如果手動操作是一件很麻煩的事情,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
這是最簡單的應用,可以用你的腳本來擴展它.
其實這些簡單的工作能減少你不少工作負擔,因爲項目一般都有一個反覆的調試過程.