Я создал статическую библиотеку в 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");
}
library_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? Я не хочу, чтобы внешние пользователи знали что-либо о внутренних функциях тестирования.