AIX — IBM XL C / C ++ обеспечивает init_priority?

Мы используем статический порядок инициализации C ++ для управления созданием нескольких объектов в библиотеке C ++. GCC предлагает init_priority, и Microsoft предлагает init_seg().

Я ищу подобное с компилятором IBM XL C / C ++, но мои результаты поиска не показывают полезных хитов. Компилятор работает как в Linux, так и в AIX. Очевидно, что Linux предлагает эту функцию, но я не уверен в поддержке AIX во время выполнения.

Мой первый вопрос: поддерживает ли платформа AIX приоритеты инициализации?

Мой второй вопрос: предлагает ли IBM XL C / C ++ способ управления им с помощью исходного кода?

2

Решение

IBM XL C / C ++ для Linux V13.1.1 и выше предлагает способ управления приоритетами инициализации, см. Центр Знаний для получения более подробной информации о том, как управлять им через init_priority переменный атрибут, аналогичный GCC, который назначает статические приоритеты инициализации на уровне объекта.

IBM XL C / C ++ для AIX не поддерживает init_priority но он предлагает способ управления порядком инициализации глобальных переменных между файлами .o в пределах одного блока ссылок с помощью -qpriority а также #pragma priority, Подробности об этих опциях можно найти на Центр Знаний. К тому же, -qmkshrobj=priority (Центр Знаний) контролирует порядок инициализации общих объектов (и a.out) при запуске программы (XL AIX использует этот метод, тогда как XL Linux использует зависимость для определения порядка инициализации общих объектов). Порядок в модуле перевода должен быть в декларативном порядке, иначе вы можете получить инициализацию, ссылаясь на переменную, которая еще не была инициализирована.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]