共有ライブラリのロード時にコードを呼び出すコードを作成したいと思います。私はこのようにそれをするだろうと思った:
#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でこれらの#pragmainitおよびfiniステートメントを使用するにはどうすればよいですか?