Из статической библиотеки MinGW (.a) в статическую библиотеку Visual Studio (.lib) - PullRequest
43 голосов
/ 19 января 2010

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

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

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

Ответы [ 4 ]

33 голосов
/ 26 января 2010

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

  1. Перейти к проекту Properties (Alt-F7).
  2. В левой части окна откройте Configuration Properties->Linker->Input
  3. Добавить список всех .a архивов, которые необходимо использовать
  4. Возможно, вам также понадобится добавить libgcc.a библиотеку MinGW

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

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

4 голосов
/ 12 октября 2013

, но использование .a приводит к невозможности отладки моего .exe «Не удается найти информацию об отладке».- энтропия 22 мая в 12:27

, потому что библиотека .a не содержит отладочную информацию, необходимую для отладки.вам нужно указать компилятору добавить отладочную информацию во время компиляции, если вы хотите ее отладить.для mingw вам нужно добавить "-g" в CFLAGS при запуске "make", например "make CFLAGS="-g""

0 голосов
/ 19 января 2010

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

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

http://old.nabble.com/using-VC%2B%2B-.lib-with-mingw-td23151303.html

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

0 голосов
/ 19 января 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...