Глобальный становится мертвым раздетым в XCode, несмотря на __attribute __ ((используется))

Я строю проект статической библиотеки Xcode, где у меня есть класс, определенный как:

class New
{
public:
New() {
// Do something
};
static New fNew;
};

__attribute__((used)) New New::fNew;

Статический глобальный fNew не должен быть мертвым кодом, удаленным компоновщиком, так как он был принудительно объявлен как ((используется)). Но я не вижу, чтобы конструктор вызывался для New. Есть идеи, почему это происходит?

РЕДАКТИРОВАТЬ:
Ожидается, когда я добавлю фиктивную функцию, чтобы вернуть указатель на fNew

void* getDummyReference()
{
return (void*)&New::fNew;
}

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

Почему статический глобал будет лишен даже дань((используемый))?

2

Решение

Задача ещё не решена.

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


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