在Linux中显式导出共享库函数

时间:2010-01-29 20:10:37

标签: c++ linux

是否有一个等效的__declspec(dllexport)符号用于从共享库中显式导出函数?由于某些原因我使用的工具链,非类成员的函数不会出现在生成的共享库文件中。

2 个答案:

答案 0 :(得分:66)

__attribute__((visibility("default")))

据我所知,并没有相当于__declspec(dllimport)

#if defined(_MSC_VER)
    //  Microsoft 
    #define EXPORT __declspec(dllexport)
    #define IMPORT __declspec(dllimport)
#elif defined(__GNUC__)
    //  GCC
    #define EXPORT __attribute__((visibility("default")))
    #define IMPORT
#else
    //  do nothing and hope for the best?
    #define EXPORT
    #define IMPORT
    #pragma warning Unknown dynamic link import/export semantics.
#endif

答案 1 :(得分:29)

http://gcc.gnu.org/wiki/Visibility

这是一个关于msvc和gcc导出的完整教程。