Сборка библиотеки на разных платформах без запуска всех платформ - PullRequest
2 голосов
/ 13 февраля 2009

У меня есть небольшой фрагмент кода, который работает как плагин для больших графических приложений. Платформа разработки Qt с кодом C ++. Мне удалось собрать .so, .dylib и .dll для linux, MacOS и Windows соответственно, но для этого мне нужно было иметь машину под управлением каждой операционной системы (в моем случае, для запуска linux [ubuntu] gcc изначально, и Windows MinGW и MacOS XCode gcc в виртуальных машинах).

Есть ли способ собрать все 3 платформы с одной? Некоторое время назад я ударился головой об эту проблему, и исследования на сегодняшний день показывают, что это нелегко (или практически) сделать. Код должен ссылаться только на один заголовок, который определяет плагин API и построен из довольно простого Makefile (в настоящее время с небольшими вариациями для каждой платформы).

Ответы [ 3 ]

2 голосов
/ 13 февраля 2009

Вы должны взглянуть на кросс-компиляцию.

Вы в основном строите компилятор, который (на вашей текущей платформе) будет выводить двоичные файлы для ваших желаемых платформ.

Попробуйте эту ссылку о том, как это сделать на Linux, для Windows, с QT

1 голос
/ 10 сентября 2009

Лучше поздно, чем никогда, я только что натолкнулся IMCROSS

Это выглядит довольно многообещающе!

0 голосов
/ 13 февраля 2009

Для Linux довольно легко настроить или даже загрузить виртуальную машину, например, с помощью VMWare. Запуск OSX на VMWare несколько сложен, но возможен.

Запуск VMWare и совместное использование каталога на локальном диске, вы даже можете скомпилировать для разных платформ, используя одни и те же точные файлы.

Где-то есть кросс-компилятор для OSX, но я бы не поверил, что он отличного качества.

...