От MinGW статическая библиотека (.a) к Visual Studio статическая библиотека (.lib)

Я пытаюсь использовать xlsLib для создания электронных таблиц Excel из приложения C++.

Проблема состоит в том, что, компилируя xlsLib, я даю.a файл (статическая библиотека GCC, сгенерированная MinGW). Но, мое приложение зависит от другого API (PhysX) тот единственные компиляции с Visual Studio.

Таким образом: действительно ли возможно преобразовать статическую библиотеку GCC (xlslib.a) к Visual Studio статический файл библиотеки (xlslib.lib)?

44
задан CharlesB 25 June 2015 в 13:52
поделиться

3 ответа

Насколько я знаю, они одно и то же. Визуальные студии .lib файлы также AR архивы, содержащие объектные файлы. Вы пытались просто переименовать файл? :)

-1
ответ дан 26 November 2019 в 22:20
поделиться

Вот два ресурса, которые я нашел полезным:

[SNIP, неправильная ссылка]

http://old.nablble.com/using-vc%2b%2b-.lib-with-mingw-td23151303.html

Редактировать. Я не могу найти ссылку, которую я искал. Тем временем, проверьте этот один из: http://www.willus.com/mingw/yongweiwu_stdcall.html

0
ответ дан 26 November 2019 в 22:20
поделиться

Архивы статических библиотек, сгенерированных с помощью MinGW, в целом совместимы с компилятором/линковщиком Visual C++. Поэтому их можно использовать непосредственно, добавляя файлы .a на вход компоновщика в свойствах проекта в Visual Studio:

  1. Go to project Properties (Alt-F7).
  2. В левой части окна откройте Свойства конфигурации->Linker->Input
  3. Add list of all .a archives you need to use
  4. Вам может понадобиться добавить также libgcc от MinGW. a

Также могут возникнуть проблемы со смешанными библиотеками времени исполнения C свойствами C/C++->Генерация кода->Библиотека времени исполнения , но это зависит от вашей конфигурации сборки, которую вы используете с MinGW. Иногда возникает необходимость линковки с libmsvcrt.a из MinGW, но во многих (если не во многих) случаях это приводит к проблемам.

Наконец, эта смешанная линковка с MinGW и Visual C++ обычно работает, но для модулей на Си и, насколько я знаю, не работает для C++.

34
ответ дан 26 November 2019 в 22:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: