how to hide symbol in a .so library

Hi,
i want to hide the symbol in my library written in c or c++ from nm or gdb.
example:

i create a library example.so, if i run

nm example.so

i can see the functions contained in the library. I don’t want this, i want the hide all symbol in my my library and from gdb i want to hide the call at my library.
Are there some solution?

thanks

I’m not an expert. But… no.
You can avoid a symbol being exported (remove it from nm -D example.so output), what I though when read your title, but that’s all.

If there is no symbol list, how is the dynamic linker supposed to resolve the symbols? I mean, sure, you can use the “strip” command to “hide all symbols”… but then the library will be unusable.

Hi,

I guess gcc visibility is what you are searching for. Visibility - GCC Wiki.

Hope this helps