Я хотел бы создать код, который вызывает некоторый код при загрузке разделяемой библиотеки. Я думал, что сделаю это вот так:
#pragma init(my_init)
static void my_init () {
//do-something
}
int add (int a,int b) {
return a+b;
}
Поэтому, когда я создаю этот код с помощью
gcc -fPIC -g -c -Wall tt.c
Он возвращает
gcc -fPIC -g -c -Wall tt.c
tt.c:2: warning: ignoring #pragma init
tt.c:4: warning: ‘my_init’ defined but not used
Итак, он игнорирует мои #pragmas. Я пробовал это в реальном коде, и мой код прервался, потому что функция не была вызвана в разделе pragma, потому что она была проигнорирована.
Как мне получить gcc для использования этих #pragma init и fini-операторов?