Как скомпилировать приложение, которое использует библиотеки, скомпилированные из разных компиляторов? - PullRequest
0 голосов
/ 22 сентября 2018

Мой вопрос как тема.

В настоящее время я использую Mingw32 compiler в Qt creator для компиляции моего приложения.Проблема в том, что я включаю в свое приложение статическую библиотеку .lib и заголовочный файл, скомпилированный из Visual Studio 2017 .

Когда я продолжу запускать или компилировать мое приложение в Qt.Я столкнулся бы с кодом ошибки, нераспознанный формат файла , указывающим на файл .lib.

Я сомневаюсь, что: Например, я не могу использовать компилятор 1 для компиляции других библиотек, скомпилированных изКомпилятор 2.

Я следую инструкции здесь: Установка и компиляция libwdi для компиляции файла "libwdi.lib".

FYI, причина, по которой я использую Visual Studioкомпилировать библиотеку .lib (libWdi) объясняется тем, что в моей ОС Windows этого легче добиться после того, как я попробовал использовать wingw32-make из Qt5 Tool.Это такая боль, так как я даже не могу запустить ./autogen.sh для генерации make-файла для Mingw32 в Windows.

Цените любую пошаговую информацию о том, как создать работоспособный .libфайл для создателя Qt, включая использование VS, mingw и кросс-компиляторов .

1 Ответ

0 голосов
/ 22 сентября 2018

Если целевая библиотека использует функции c ++ в своем общедоступном интерфейсе, то, скорее всего, это не сработает, независимо от того, какие махинации вы проходите.Даже в разных версиях одного и того же компилятора часто возникают проблемы в этой ситуации.

С другой стороны, обычно будет работать Pure C (в Windows наборы инструментов не-MS будут, по крайней мере, использовать формат промежуточных объектов MS,даже если компилятор / компоновщик обычно не используется).

...