我想编写一些代码在共享库加载时调用一些代码。我认为可以这样做:
#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 语句?