Я хотел бы создать некоторый код, который вызывает некоторый код при загрузке разделяемой библиотеки. Я думал, что сделаю это так:
#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. Я попробовал это в реальном коде, и мой код был прерван, потому что функция не была вызвана в разделе прагмы, потому что она игнорировалась.
Как мне заставить gcc использовать эти операторы #pragma init и fini?