【发布时间】:2009-10-01 20:41:29
【问题描述】:
我在 GCC 中创建了一个静态库,但我想隐藏大部分符号。
例如test1.c:
extern void test2(void);
void test1(void) {
printf("test1: ");
test2();
}
test2.c:
extern void test1(void);
void test2(void) {
printf("test2\n");
}
库_api.c:
extern void test1(void);
extern void test2(void);
void library_api(void) {
test1();
test2();
}
现在编译:
gcc -c test1.c -o test1.o
gcc -c test2.c -o test2.o
gcc -c library_api.c -o library_api.o
ar rcs libapi.a test1.o test2.o library_api.o
如何只显示“library_api()”函数:
nm libapi.a
而不是函数“test1()”、“test2()”和“library_api()”?换句话说,我如何隐藏“test1()”和“test2()”,使其不显示并被 libapi.a 的外部用户调用?我不希望外部用户了解内部测试功能。
【问题讨论】: