Если у вас есть очень простая программа на С++, которая использует объект 'cout', вы можете включить iostream в исходный файл, а затем, когда вы его скомпилируете, вам не нужно связывать любые внешние библиотеки. Другими словами, вы можете просто запустить
g++ main.cpp -c
g++ main.o -o program
./program
Если вы хотите использовать более сложные объекты, такие как потоки, вы не только включаете pthread, но и когда вы связываете программу, вы должны ссылаться на библиотеку.
g++ main.cpp -c
g++ main.o -lpthread -o program
./program
Итак, мой вопрос: почему мне не нужно связывать любые библиотеки для использования всех объектов iostream?