LINUX.ORG.RU

так экспортировать или импортировать?

в линуксе kept simple - все символы экспортируются по-умолчанию, не надо ничего делать.
если Qt - лучше пользоваться Q_DECL_EXPORT и Q_DECL_IMPORT - меньше гемора будет с виндой. QtCreator генерит такой код по умолчанию при создании shared library проекта. Посмотри.

dib2 ★★★★★
()
Ответ на: комментарий от sergei9

так у меня статическая либа не создаётся в code blocks для exporta из so

она не нужна, .so линкуется в программу напрямую

cdslow ★★
()
Ответ на: комментарий от sergei9

как мне её подключить к программе?

gcc object_files path_to_lib.so -o program

или

gcc object_files -L/dierectory/with/lib -lname -o program

при этом .so файл должен иметь имя libname.so

cdslow ★★
()

.h

#define API __attribute__ ((visibility("default")))

#ifdef __cplusplus
extern "C" {
#endif

int API some_api_fun();

#ifdef __cplusplus
}
#endif

.cpp
int API some_api_fun() {puts("hello");}

компилятору скорми -fvisibility=hidden, тогда наружу будут торчать только те, что тебе надо. Это ускорит загрузку приложения.

How To Write Shared Libraries Ulrich Drepper Red Hat, Inc. drepper@redhat.com August 20, 2006

nanoolinux ★★★★
()
Ответ на: комментарий от sergei9

Нинада тибе никакая статическая либо. Под правильными платформами всё сделано без лишнего долбанутого гемора с либфайлами и сошки проверсиированы на уровне имени файла.

Про всякие dllMain, которые безпричинно крешат всё при запуске loadlibrary я вообще молчу. Такие дела.

И вообще, после портирования туда даже кутишных приложений у меня руки потом тресутся два дня. Такое чувство что ту платформу придумали садомазо, ибо на каждом шаге кажется что тебе специально палки в колёса вставляют.

Другое дело линукс. Всё работает из коробки.

nanoolinux ★★★★
()
Последнее исправление: nanoolinux (всего исправлений: 1)
Ответ на: комментарий от nanoolinux

How To Write Shared Libraries Ulrich Drepper Red Hat, Inc. drepper@redhat.com August 20, 2006

Плюсую Дреппера. Читать обязатлельно для полного понимания.

Pavval ★★★★★
()
Ответ на: комментарий от yoghurt

extern «C» не забудь

C++-символы отлично экспортируются

annulen ★★★★★
()
Ответ на: комментарий от nanoolinux

компилятору скорми -fvisibility=hidden,

-fvisibility-inlines-hidden забыл еще

annulen ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.