Существует ли эквивалент Linux для обозначения __declspec(dllexport)
для явного экспорта функции из общей библиотеки? По какой-то причине с используемой toolchain функции, которые не являются членами класса, не отображаются в результирующем файле общей библиотеки.
Явный экспорт функций разделяемой библиотеки в Linux
Ответ 1
__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
Ответ 2
http://gcc.gnu.org/wiki/Visibility
Это полное руководство по экспорту как в msvc, так и в gcc.