Вы пишете "... это работает", но затем вы пишете "... проблемы со связыванием".
Я немного запутался с этим вопросом, потому что:
- Если есть проблемы со связыванием, тогда не работает ...
- Но если это работает, то у вас нет проблем со связыванием ...
Итак, я предполагаю, что вы имеете в виду: «он компилируется, но есть ошибки компоновки»?
Если это так, то вы можете попробовать
g++ -g main.cpp -o main
вместо
gcc -g main.cpp -o main
РЕДАКТИРОВАТЬ: ... и сделать не упомянуть main.o в командной строке =;)
РЕДАКТИРОВАТЬ: если это все не помогает - может быть, что-то не так с вашей установкой g ++ / gcc?
на Ubuntu, пожалуйста, попробуйте
sudo aptitude install build-essential