Try with a TApplication:
#include "TCanvas.h"
#include "TGraph.h"
#include "TApplication.h"
#include <iostream>
// g++ test.cc -o test `root-config --cflags --glibs`
int main(int argc, char* argv[])
{
TApplication a("a", 0, 0);
double var_x[3] = {1, 2, 3};
double var_y[3] = {1, 2, 3};
TCanvas *can1 = new TCanvas();
TGraph *gr1 = new TGraph(3, var_x, var_y);
gr1->Draw("ALP");
gPad->Modified();
gPad->Update();
//can1->SaveAs("b.png");
std::cout << "Ctrl+c or choose File->Quit ROOT from TCanvas menu to end" << std::endl;
a.Run(kTRUE);
return 1;
}