作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我现在有点困惑。我认为当你在一个函数上使用 extern 时,它会成为所有东西的全局,但似乎并非如此......我现在想要的是拥有一些可以在我的静态库中使用的函数,并且在链接它的程序中。我该怎么办呢?我正在使用 Objective-C
最佳答案
如果我在定义函数时只使用 extern
而不是 extern inline
,它对我有用。
示例:inlib.h
extern int foo(int i);
extern int callsfoo(int i);
inlib.m:
#import "inlib.h"
#import "stdio.h"
extern int foo(int i) { printf("Foo: i = %d\n", i); }
extern int callsfoo(int i) {
printf("Callsfoo:\n");
foo(i);
}
创建的库:gcc -ObjC -c inlib.m -o inlib.o
ar -q lib.a inlib.o
来电者.m:
#import "inlib.h"
#import "stdio.h"
int main(int argc, char** argv) {
printf("Calling foo directly.\n");
foo(1);
printf("Calling foo via callsfoo.\n");
callsfoo(2);
return 0;
}
编译:gcc -ObjC -o caller caller.m lib.a -lobjc
运行方式:./caller
返回:
Calling foo directly.
Foo: i = 1
Calling foo via callsfoo.
Callsfoo:
Foo: i = 2
关于c - 有没有办法使函数对库和包含/链接库的人来说是全局的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3140122/
我是一名优秀的程序员,十分优秀!