c++ 警告:无法调用'main()'来执行宏

fhg3lkii  于 2022-11-19  发布在  其他
关注(0)|答案(1)|浏览(209)

我正在努力学习根,我有一些代码,我可以工作。有时代码的工作,但有时他们不。

{
 c1 = new TCanvas("c1", "My Root Plots",600, 400);
 c1->Divide(2,2);
 c1->cd(1);
 f=new TF1("f","[0]*exp(-0.5*((x-[1])/[2])**2)/(sqrt(2.0*TMath::Pi())*[2])",-100,100); f->SetTitle("Gaus;X axis ;Y axis");
 f->SetParameter(0,0.5*sqrt(2*TMath::Pi()));
 f->SetParameter(1,8);
 f->SetParameter(2,5);
 f->SetLineColor(3);
 f->SetMarkerColor(1);
 f->SetMarkerStyle(kOpenStar);
 f->SetMarkerSize(5);
 f->Draw();
 
 
 
 c1->cd(2);
 f1 = new TF1("f1", "[0]*x+[1]", 0,50);
 f1->SetParameters(10,4);
 f1->SetLineColor(5);
 f1->SetTitle("ax+b;x;y");
 f1->Draw();
 
 }

这是我正在尝试做的代码。代码有点工作,“”你说的有点工作是什么意思“”。我的意思是它给了我一个图表,但你可以看到在我写的代码(f-〉SetMarkerColor(1); f-〉设置标记样式(kOpenStar);)但是图上没有出现标记,终端也没有报错,是不是我的ROOT库不见了?我是新手,不能上传图片。
我有另一个问题。我想分享它,也许它会帮助解决我的问题。

void testRandom(Int_t nrEvents=500000000)
{
    TRandom *r1=new TRandom();
    TRandom2 *r2=new TRandom2();
    TRandom3 *r3=new TRandom3();
    TCanvas* c1=new TCanvas("c1","TRandom Number Generators", 800,600); c1->Divide(3,1);
    TH1D *h1=new TH1D("h1","TRandom",500,0,1); TH1D *h2=new TH1D("h2","TRandom2",500,0,1); TH1D *h3=new TH1D("h3","TRandom3",500,0,1); TStopwatch *st=new TStopwatch();
    st->Start();
    for (Int_t i=0; i<nrEvents; i++) { h1->Fill(r1->Uniform(0,1)); } st->Stop(); cout << "Random: " << st->CpuTime() << endl; st->Start();
    c1->cd(1); h1->SetFillColor(kRed+1); h1->SetMinimum(0); h1->Draw();
    for (Int_t i=0; i<nrEvents; i++) { h2->Fill(r2->Uniform(0,1)); } st->Stop(); cout << "Random2: " << st->CpuTime() << endl; st->Start();
    c1->cd(2); h2->SetFillColor(kGreen+1); h2->SetMinimum(0); h2->Draw();
    for (Int_t i=0; i<nrEvents; i++) { h3->Fill(r3->Uniform(0,1)); } st->Stop(); cout << "Random3:" << st->CpuTime() << endl;
    c1->cd(3);
    h3->Draw(); h3->SetFillColor(kBlue+1); h3->SetMinimum(0);
}

这是我试图运行的另一个代码。但是这个代码不工作,它给我这个错误。
警告:调用main()执行宏失败。请添加此函数或重命名宏。返回.L
我尝试了不同的方法,
根目录[1] .x主目录. cpp
根目录[1] .L main.cpp
还是会出现同样错误

jk9hmnmh

jk9hmnmh1#

设置标记颜色(1); f-〉设置标记样式(kOpenStar);)但图上没有出现标记。
尝试使用f->Draw("PL")而不是f->Draw()使标记可见。
警告:无法调用main()来执行宏。
重命名你的文件,它应该被称为testRandom.cpp而不是main.cpp然后,你可以用.x testRandom.cpp来执行它。

相关问题