Я пытаюсь связать LizardTech GeoExpress DSDK с моим собственным приложением. Я использую gcc, чтобы мы могли компилировать для платформ. В Linux и Mac это работает легко: они предоставляют статическую библиотеку (libltidsdk.a
) и заголовки, и все, что нам нужно сделать, это использовать их.
Компиляция для Windows не так проста. Они создали библиотеку с использованием Microsoft Visual Studio, а мы используем MinGW. Я прочитал FAQ по MinGW и столкнулся с проблемами ниже. Библиотека полностью на C ++, поэтому мой первый вопрос: возможно ли это?
Простое связывание с dll, как предусмотрено, приводит к ошибкам «неопределенная ссылка» для всех вызовов C ++ (конструкторы, десктрукторы, методы и т. Д.).
Основано на MinGW Wiki:
http://www.mingw.org/wiki/MSVC%5Fand%5FMinGW%5FDLLs
Я должен быть в состоянии использовать утилиту reimp
, чтобы конвертировать .lib в нечто полезное. Я перепробовал все файлы .lib, предоставленные LizardTech, и все они дают «недопустимую или поврежденную библиотеку импорта». Я пробовал обе версии 0.4 и 0.3 утилиты reimp.
Используя второй метод, описанный в вики, я запустил pexport и dlltool над dll, чтобы получить .a архив, но он выдает те же неопределенные ссылки.
Кстати: я прочитал обсуждение ниже. Это оставило некоторую двусмысленность относительно того, возможно ли это, и с учетом страницы MinGW Wiki кажется, что это должно быть выполнимо. Если это невозможно, это все, что мне нужно знать. Если это можно сделать, я хотел бы знать, как мне этого добиться.
Как связать с VS2008 сгенерированные .libs из g ++
Спасибо!