2009-02-13 10 views
2

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

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

ответ

1

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

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

0

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

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

Существует какой-то кросс-компилятор для OSX, но я бы не стал доверить ему отличное качество.

+0

Да, это то, что я сделал до сих пор. – Rog

+0

OSX использует gcc, используя кросс-компилятор на linux для компиляции для OSX, вы должны получить почти то же самое. – tliff

2

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

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

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