Движок с нуля
Справочник

Заголовочный файл

Файл с объявлениями функций и классов, который подключают через #include. Перед компиляцией текст этого файла целиком вставляется на место строки #include.

Строка #include <iostream> — не «импорт модуля», а буквальная вставка текста. Перед компиляцией место этой строки занимает всё содержимое файла iostream, а он сам подключает другие файлы. Компилятор видит уже один длинный текст.

Поэтому ошибка может указывать не на main.cpp, а на заголовочный файл, который в нём подключён.

Например, ты написал свой файл Window.h, подключил его в main.cpp строкой #include "Window.h" и забыл в нём точку с запятой. Собираешь ты main.cpp, а компилятор сообщает:

D:\dev\MyEngine\Window.h(12): error C2143: syntax error: missing ‘;’ before ‘}’

Здесь Window.h(12) — это строка 12 файла Window.h: туда и нужно идти, а в main.cpp искать нечего.

Угловые скобки, как в <iostream>, значат «искать в папках библиотек», например стандартной библиотеки или GLFW; кавычки, как в "Window.h", — «сначала искать рядом с файлом, который подключает», то есть в твоём проекте.