Как я могу использовать сборку статической библиотеки другой версией mingw? - PullRequest
0 голосов
/ 16 сентября 2010

Привет, Я сталкиваюсь со сложной ситуацией с использованием статической библиотеки под окнами. Статическая библиотека построена по специальной версии mingw, которая поставляется в комплекте с Eiffel studio. Так как студия Eiffel использует mingw для создания своих выходных данных в виде статической библиотеки, я не могу контролировать эту конфигурацию. Если я попытаюсь использовать эту статическую библиотеку с Eclipse CDT, которая использует более новую версию mingw, я не смогу скомпилировать свой проект. Это потому, что я должен предоставить опции -l для различных библиотек, таких как winsock, и, похоже, из-за различий между версиями компиляторов, генерирующих статическую библиотеку, и моим кодом, это не работает.

Если я заставлю Eclipse использовать тот же каталог mingw, который входит в Eiffel studio, тот, который компилировал статическую библиотеку, тогда я могу скомпилировать свой код (хотя здесь есть и другие проблемы) Я не хочу ограничивать мою разработку на С ++ только потому, что статическая библиотека создается с определенной версией mingw.

Так как я могу использовать эту статическую библиотеку из моей собственной версии Mingw? Это Windows XP кстати ...

С наилучшими пожеланиями Seref

1 Ответ

1 голос
/ 16 сентября 2010

Хотя у меня не так много информации, вот что я бы сделал:

  1. Попробуйте скомпилировать с более новой версией mingw и посмотреть, сможете ли вы заставить ее работать. Ошибки очень важны в этом случае (вам также следует проверить руководство / списки рассылки / форумы mingw, чтобы узнать о совместимости между версиями mingw

  2. Отделите библиотеку от программы и оберните всю ее функциональность - чтобы избежать различных несовместимых флагов компиляции (вы можете создать другую библиотеку - даже DLL, и вызывать ваши новые функции (для некоторых оболочек библиотечные функции)

  3. Решите, какая часть проекта является обязательной - часть с библиотекой или остальная часть кода

    1. Если библиотека обязательна, я бы скомпилировал код с этой версией mingw
    2. В противном случае я бы попытался найти эквивалент для этой библиотеки или исключить ее

Может быть доступна опция Others, но это то, что я сделал бы (в этом порядке)

...