Есть кроссплатформенная библиотека, которая собирается практически без переделок на любой платформе. И вот решил я интереса ради собрать её под Unix. Поставил на виртуальную машину типа VMWare юбунту, и скачал codeblocks для сборки. Создал в нем проект типа Shared Library и разместил в нем все файлы. Также я добавил в настройки проекта и def-файл, который у меня используется на всех других платформах.
Проект компилируется, но линковщик спотыкается на def-файле и пишет, что произошло 50 ошибок. Стоит убрать этот def-файл, как библиотека собирается. Сначала я подумал, что видимо def-файл у меня не соответствует нужному синтаксису, так как я засунул файл с Windows. Но при попытке найти в интернете правильный синтаксис def-файла под Unix я натолкнулся на сообщение, что для so-библиотек def-файл вообще не предусмотрен. Хм... я в недоумении.
Вопрос, как обычно решается эта проблема? Вроде бы без def-файла в либу будут экспортированы все функции... но как-то это не очень красиво выглядит, так как либа достаточно здоровая по размерам и чего там только нет. Короче, как сделать красиво, не превращая это в эпопею?