通过使用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 *.omake -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;
}本文出自 “风清扬song” 博客,请务必保留此出处http://2309998.blog.51cto.com/2299998/1381495
linux makefile 使用,布布扣,bubuko.com
原文:http://2309998.blog.51cto.com/2299998/1381495