__ припишите __ ((init_priority (X))) в GCC

Я использую __attribute__((init_priority(X))) в GCC как это:

Type1 __attribute__ ((init_priority (101))) name1 = value1;
Type2 __attribute__ ((init_priority (102))) name2 = value2;

в файлах другого источника. Скажем, file1.cpp и file2.cpp. Если я использую это в той же библиотеке, она работает как ожидалось, name1 инициализируется, прежде name2, но если я использую это в различных библиотеках, порядок инициализации не является ожидаемым. Я читал на gcc документации, что это должно работать в различных библиотеках, как я ожидаю, для определения порядка инициализации. Есть ли что-то не так в способе, которым я использую это? У Вас была та же проблема?

PS: рефакторинг не является решением для этой проблемы, потому что я должен портировать очень большой проект из Visual Studio.

6
задан Mircea Ispas 30 July 2010 в 13:43
поделиться