Você precisa colocar as opções do vinculador no final do comando de compilação, da seguinte forma:
g++ main.cpp -o main -lGL -lGLU -lglut
g++
pode processar as opções da linha de comando seqüencialmente, o que significa que você deseja vincular GL, GLU e glut mas nenhum código está realmente usando-as para que elas possam ser descartadas, apenas então tentar compilar main.cpp
, resultando nos erros.