小编Jos*_*osh的帖子

#pragma init和#pragma fini在linux上使用gcc编译器

我想构建一些代码,在共享库的加载时调用一些代码.我以为我会这样做:

#pragma init(my_init)

static void my_init () {  
  //do-something
}

int add (int a,int b) {  
  return a+b; 
}
Run Code Online (Sandbox Code Playgroud)

所以当我用它构建代码时

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
Run Code Online (Sandbox Code Playgroud)

所以它忽略了我的#pragmas.我在实际代码中尝试了这个并且我的代码中止了,因为在pragma部分中没有调用函数,因为它被忽略了.

我如何让gcc使用这些#pragma init和fini语句?

c gcc pragma

11
推荐指数
1
解决办法
3619
查看次数

标签 统计

c ×1

gcc ×1

pragma ×1