Среда разработки рабочего стола, которая компилируется в Linux, Mac OS и Windows - PullRequest
1 голос
/ 05 апреля 2010

Существуют ли какие-либо среды разработки, которые позволяют вам иметь одну кодовую базу, которая может компилироваться для версий Linux, Mac OS и Windows без особых настроек? Я знаю, что это все равно что спрашивать, где похоронен Святой Грааль, но, возможно, такая вещь существует. Спасибо.

Ответы [ 4 ]

2 голосов
/ 05 апреля 2010

Это достигается с помощью ряда механизмов, наиболее выдающимися из которых являются системы сборки и специальные версии кода для определенных систем. Что вы делаете, так это пишете свой код так, что, если ему требуется API операционной системы, он вызывает определенную функцию. Например, я мог бы использовать MyThreadFunction(). Теперь, когда я собираюсь под Linux, я получаю версию MyThreadFunction() для Linux, которая вызывает pthread_create(), тогда как версия для Windows вызывает CreateThread(). Соответствующие включения также включены в эти конкретные файлы платформы.

Другая вещь, которую нужно сделать, это использовать библиотеки, которые обеспечивают согласованные интерфейсы на разных платформах. wxWidgets - одна из таких платформ для написания настольных приложений, как, впрочем, и Qt и GTK +. Любые библиотеки, которые вы используете, стоит попробовать найти кроссплатформенную реализацию. Кто-то, несомненно, упомянет Boost в какой-то момент здесь. Другой системой, которую я знаю, является Apache Portable Runtime (APR), которая предоставляет целый ряд функций, позволяющих запускать httpd на Windows / Linux / Mac.

Таким образом, ваша базовая кодовая база не зависит от платформы - ваша сборочная система включает в себя специфичные для системы биты, а ваша кодовая база связывает их вместе.

Теперь, вы можете сделать это с одного рабочего стола? Я знаю, что вы можете компилировать для Windows из Linux и, вероятно, для Mac OS X из Linux, но я сомневаюсь, что вы можете сделать это из Windows-Linux. В любом случае вам нужно протестировать то, что вы создали на каждой платформе, поэтому мой совет - запускать виртуальные машины (см. Vmware / virtualbox).

Наконец, редакторы / окружения: используйте все, что вам подходит. Я использую Eclipse / GVim в Linux и Visual Studio в Windows - VS - это моя "система сборки Windows".

1 голос
/ 26 октября 2012

Qt - хорошая библиотека / API / фреймворк для этого на C ++, а Qt Creator - очень приятная IDE для него.

1 голос
/ 05 апреля 2010

Может быть, что-то вроде CodeBlocks ?

1 голос
/ 05 апреля 2010

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

То, что вы ищете, называется " Cross Compiling "

...