本博客http://blog.csdn.net/livelylittlefish 贴出作 者(三二一@小鱼)相关研究、学习内容所做的笔记,欢迎广大朋友指正!
1. 引子
对实例 (1) 、实例 ( 续 2) 、实例 ( 续 3) 、实例 ( 续 4) 、实例 ( 续 5) 这个系列的例子,能否在 Linux 和 win32 平台进行自动编译、自动运行并保存结果?
答案是肯定的。
在 Linux 平台上,可以写 makefile 文件进行编译,写 shell 脚本自动运行并保存运行结果;在 win32 平台上,可以写 .bat 文件,使用 cl 命令对 cpp 文件进行编译,也用 .bat 文件让程序自动运行并保存运行结果。
本系列的实例,也是一个非常好的重构 的例子。
2. 自动编译
2.1 Linux 平台上的 makefile 文件
all:
g++ -g -o multiindexcontainer1 multiindexcontainer1.cpp
g++ -g -o multiindexcontainer2 multiindexcontainer2.cpp
g++ -g -o multiindexcontainer3 multiindexcontainer3.cpp
g++ -g -o multiindexcontainer4 multiindexcontainer4.cpp
g++ -g -o multiindexcontainer5 multiindexcontainer5.cpp
clean:
rm multiindexcontainer1
rm multiindexcontainer2
rm multiindexcontainer3
rm multiindexcontainer4
rm multiindexcontainer5
2.2 win32 平台上的 make.bat 文件
@echo off
echo start to compile all examples
echo.
echo making multiindexcontainer1.cpp ...
cl /wd 4530 /wd 4715 /nologo multiindexcontainer1.cpp
echo.
echo making multiindexcontainer2.cpp ...
cl /wd 4530 /nologo multiindexcontainer2.cpp
echo.
echo making multiindexcontainer3.cpp ...
cl /wd 4530 /nologo multiindexcontainer3.cpp
echo.
echo making multiindexcontainer4.cpp ...
cl /wd 4530 /nologo multiindexcontainer4.cpp
echo.
echo making multiindexcontainer5.cpp ...
cl /wd 4530 /nologo multiindexcontainer5.cpp
echo.
del *.obj
echo done. bye.
pause
3. 自动运行并保持结果
3.1 Linux 平台上的 test.sh 文件
echo -e "start to run all examples/n"
echo "multiindexcontainer1 running ..."
./multiindexcontainer1 > result1_linux.txt
echo -e " result is in result1_linux.txt/n"
echo "multiindexcontainer2 running ..."
./multiindexcontainer2 > result2_linux.txt
echo -e " result is in result2_linux.txt/n"
echo "multiindexcontainer3 running ..."
./multiindexcontainer3 > result3_linux.txt
echo -e " result is in result3_linux.txt/n"
echo "multiindexcontainer4 running ..."
./multiindexcontainer4 > result4_linux.txt
echo -e " result is in result4_linux.txt/n"
echo "multiindexcontainer5 running ..."
./multiindexcontainer5 > result5_linux.txt
echo -e " result is in result5_linux.txt/n"
echo "done. bye."
3.2 Win32 平台上的 test.bat 文件
@echo off
echo start to run all examples
echo.
echo multiindexcontainer1 running ...
multiindexcontainer1 > result1_win32.txt
echo result is in result1_win32.txt
echo.
echo multiindexcontainer2 running ...
multiindexcontainer2 > result2_win32.txt
echo result is in result2_win32.txt
echo.
echo multiindexcontainer3 running ...
multiindexcontainer3 > result3_win32.txt
echo result is in result3_win32.txt
echo.
echo multiindexcontainer4 running ...
multiindexcontainer4 > result4_win32.txt
echo result is in result4_win32.txt
echo.
echo multiindexcontainer5 running ...
multiindexcontainer5 > result5_win32.txt
echo result is in result5_win32.txt
echo.
echo done. bye.
pause
本系列例子目录: file://E:/study/12.MyCode/Boost/multiindexcontainer
本系列例子代码源文件位置:
<file://E:/study/12.MyCode/Boost/multiindexcontainer/multiindexcontainer1.cpp >
<file://E:/study/12.MyCode/Boost/multiindexcontainer/multiindexcontainer2.cpp >
< file://E:/study/12.MyCode/Boost/multiindexcontainer/multiindexcontainer 3 .cpp >
< file://E:/study/12.MyCode/Boost/multiindexcontainer/multiindexcontainer 4 .cpp >
< file://E:/study/12.MyCode/Boost/multiindexcontainer/multiindexcontainer 5 .cpp >