Моя статическая библиотека C ++ содержит некоторый глобальный объект с конструктором.Тестовая программа построена с использованием Apple gcc 4.2.1, и после запуска видно, что объект инициализируется нулями, но конструктор не вызывается.То же самое верно для любых статических переменных-членов класса.
Эту проблему можно исправить, предоставив -force_load
параметр ld
, но этот способ не подходит из-за большого размера исполняемого файла.Я пытался ссылаться на функции из файла, где определен глобальный объект, но это не дало никакого эффекта.
При сборке того же кода в Linux (gcc 4.5.1) таких проблем нет.