После смены порядка файлов в CMake сервис падает ещё до main
// logger.cpp
Logger globalLogger("/var/log/app.log");
// plugins.cpp
PluginRegistry registry; // конструктор вызывает globalLogger.info("registry init")
После того как в add_executable поменяли порядок исходников, процесс падает до входа в main внутри Logger::info. Код не менялся. Что происходит?
- Порядок инициализации глобалов разных .cpp не задан
- Глобальные объекты создаются после входа в main
- CMake меняет порядок вызова конструкторов в классе
- Logger нельзя использовать из другого .cpp без extern
