通过使用makefile 可以方便代码的编译,减少代码的编译时间,利于维护大的工程。

#生成的可执行文件
all:runso
#使用的编译器
CC = g++
#包含的头文件
INCLUDE = .
#编译选项
#-g 表示加入调试 -Wall生成警告信息 -ansi 关闭gnu c中与ansi c不兼容的特性,激活ansi c的专有特性
CFLAGS = -g -Wall -ansi
runso:Ccalculate.o main.o
        #注意这里CC前面一定要是TAB不是空格,
        #否则会报错。!!!!!!!!!!!
        $(CC) -o runso Ccalculate.o main.o
Ccalculate.o:Ccalculate.cpp Ccalculate.h
        $(CC) -I$(INCLUDE) $(CFLAGS) -c Ccalculate.cpp
main.o:main.cpp
        $(CC) -I$(INCLUDE) $(CFLAGS) -c main.cpp
clean:
        #注意这里CC前面一定要是TAB不是空格,
        #否则会报错。!!!!!!!!!!!
        rm *.o


make -f makeso  clean 执行makefile中的clean命令,清除.o文件。


make -f makeso  执行makefile命令,-f选项指定要执行的makefile文件。




源程序代码

Calculate.h文件

#include<vector>
#include<string>
using namespace std;
class Calculate
{
public:
        void InitVector();
        void ComputeValue();
        void GetResult(vector<double> &vResult);
private:
       vector<int> m_vSrcValue;
       vector<double> m_vCalvalue;
};

Calculate.cpp文件

#include"Ccalculate.h"
void Calculate::InitVector()
{
        vector<int>().swap(m_vSrcValue);
        for(int iINdex = 0; iINdex < 1000; iINdex ++)
        {
                m_vSrcValue.push_back(iINdex);
        }
}
void Calculate::ComputeValue()
{
        InitVector();
        for(int iINdex =0; iINdex < m_vSrcValue.size(); iINdex ++)
        {
                double dTemp = m_vSrcValue[iINdex] * 462 + 234/23+65*423;
                m_vCalvalue.push_back(dTemp);
        }
}
void Calculate:: GetResult(vector<double>  &vResult)
{
        vResult = m_vCalvalue;
}

main.cpp文件


#include"Ccalculate.h"
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
        printf("it is in main\n");
        Calculate *pCalculate = new Calculate();
        vector<double> vResult;
        pCalculate->ComputeValue();
        pCalculate->GetResult(vResult);
        for(int iIndex = 0; iIndex < vResult.size(); iIndex ++)
        {
                cout<<"value is"<<vResult[iIndex]<<endl;
        }
        if(NULL != pCalculate)
        {
                delete pCalculate;
        }
        return 0;
}