Я планирую использовать библиотеки в моей C ++ программе. Разработка происходит под Linux, но приложение предназначено для компиляции как под Linux, так и под Windows. Я понимаю, что прямой эквивалент для разделяемых библиотек (.so) в Windows - это DLL, верно?
В Linux с использованием g ++ я могу создать разделяемую библиотеку, используя флаги -fPIC
и -shared
. AFAIK, для общей библиотеки не требуется никаких других изменений кода. Но в Windows DLL все по-другому. Там я должен указать функции, которые нужно экспортировать, используя dllexport , верно?
Мой вопрос: как мне справиться с этой ситуацией? Я имею в виду dllexport недопустим в Linux, и компилятор выдаст ошибку. Но это требуется в Windows. Итак, как мне написать функцию, которая будет компилироваться на обеих платформах без какого-либо изменения кода?
Используемые компиляторы
- g ++ - LINUX
- VC ++ - Windows
Любая помощь будет отличной!