"Chen(?) Jun(?)" wrote: > I'd like to know, when I generate a .so file with ``gcc -shared'', how > can I assign which functions to export(visible by the .so user). This > is important , because a .so author would probably like to hide his > private functions so that the private symbols will not conflict with > that of .so from other programmers. > > Microsoft compiler use a .def to describe what symbols to export from a > DLL, or, __declspec(dllexport) can easily export functions of a whole > C++ class. Does the gcc world support this feature. What platform are you talking about? gcc uses whatever the underlying platform supports, but that can vary considerably. You have to remember that gcc targets dozens and dozens of various combinations of operating systems and architectures so don't assume that gcc=linux. On PE platforms, gcc works similarly to the MS toolchain: __declspec and/or a .def file, but also with the choice of using the auto-export feature of the GNU linker if neither of the former are used. On ELF platforms you use symbol visibility, either with __attribute__((visibility)) or -fvisibility. Read the fine manual: <http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html#index-g_t_0040code_007bvisibility_007d-attribute-2100> <http://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#index-fvisibility-1837> Brian