В моей папке только 2 файла — Gnuplot_example.cpp и Makefile.
Gnuplot_example.cpp
#include "Snap.h"int main(int argc, char* argv[]) {
TIntH expCount, PoissonCount;
TRnd a;
double binSize=0.1;
//exponential distribution
for (int i=0; i<10000; ++i)
{
double num=a.GetExpDev(1);
expCount.AddDat((int)(num/binSize))++;
}
//Poisson distribution
for (int i=0; i<10000; ++i)
{
double num=a.GetPoissonDev(10);
PoissonCount.AddDat((int)(num/binSize))++;
}expCount.Sort(true,true);
PoissonCount.Sort(true,true);
{
TVec<TPair<TFlt, TFlt > > XY1, XY2;
for (int i=0; i<expCount.Len(); ++i)
XY1.Add(TFltPr(expCount.GetKey(i)*binSize, expCount[i]+0.0));
for (int i=0; i<PoissonCount.Len(); ++i)
XY2.Add(TFltPr(PoissonCount.GetKey(i)*binSize,PoissonCount[i]+0.0));
TGnuPlot Gp("distribution", "Exponential and Poisson Distribution");
Gp.AddPlot(XY1, gpwLinesPoints, "Exponential");
Gp.AddPlot(XY2, gpwLinesPoints, "Poisson");
Gp.SetXYLabel("value", "count");
Gp.SavePng(); //or Gp.SaveEps();
}
return 0;
}
Makefile
#
# Makefile for non-Microsoft compilers
#
all: $(Gnuplot_example)
# COMPILE
$(Gnuplot_example): $(Gnuplot_example).cpp $(DEPH) $(DEPCPP) $(EXSNAP)/Snap.o
$(CC) $(CXXFLAGS) -o $(Gnuplot_example) $(Gnuplot_example).cpp $(DEPCPP) $(EXSNAP)/Snap.o -I$(EXSNAP) -I$(EXSNAPADV) -I$(EXGLIB) -I$(EXSNAPEXP) $(LDFLAGS) $(LIBS)
$(EXSNAP)/Snap.o:
make -C $(EXSNAP)
clean:
rm -f *.o $(Gnuplot_example) $(Gnuplot_example).exe
rm -rf Debug Release
Когда я использую команду ‘make’ в этой папке, она говорит:
make: ничего не нужно делать для «всего».
и объектный файл не создан. Я прошел через другие ответы и убедился, что в правилах вместо табуляции используется табуляция. Я новичок в этом. Я не понимаю, что не так.
Спасибо за любую помощь!
Задача ещё не решена.
Других решений пока нет …