Написание GCC-совместимой оболочки вокруг .lib-файла - PullRequest
1 голос
/ 21 февраля 2012

Недавно я получил SDK с закрытым исходным кодом, состоящий из файла заголовка C (.h), файла библиотеки (.lib) и динамической библиотеки (.dll).Они были скомпилированы с использованием Microsoft Visual C ++.Однако я пытаюсь написать свой код, используя MinGW (GCC перенесен на Windows, для тех, кто не знаком с проектом).Похоже, что ld не может связаться с файлом .lib.Мне было интересно, можно ли написать оболочку совместимости между скомпилированным кодом VS и кодом GCC, который я пишу.

1 Ответ

1 голос
/ 21 февраля 2012

Есть ли несоответствие ABI или просто не требуется связывать формат объекта? Если это просто проблема со связыванием, вы можете извлечь нужные функции, разобрать их, а затем снова собрать в объект, который может обработать ваш компоновщик. Еще проще, может быть objcopy(1) может говорить в обоих форматах и ​​может помочь вам?

Если у вас есть проблема с ABI, вы можете сделать то же самое, но также добавить слой подкладки для настройки ABI, чтобы вызовы функций работали. Насколько сложен этот уровень и насколько сложно будет писать, будет зависеть от интерфейсов функций, которые вы пытаетесь использовать.

Не расстраивайтесь из-за комментариев - это программное обеспечение, так что в значительной степени возможно .

...