Может ли один проект eclipse C ++ по-разному связывать разные библиотеки для разных платформ? - PullRequest
1 голос
/ 29 ноября 2011

У меня есть проект C ++ eclipse, который я хотел бы легко скомпилировать в Windows и OSX.

В настоящее время в проекте используется автоматически созданный make-файл.

Необходимые мне библиотеки зависят от платформы.

В osx я использую платформы CoreMidi, CoreAudio и CoreFoundation.В Windows я использую библиотеки winmm.lib и многопоточные.

Какой самый простой способ связать различные библиотеки / фреймворки в зависимости от текущей платформы?

В настоящее время я использую набор инструментов gccна OSX.Должен ли я начать использовать набор инструментов для кросс-компиляции?

Должен ли я иметь два проекта.Один для работы в windows, а другой для osx, проверяющий их обоих в управлении версиями?

Стоит ли писать собственный make-файл вместо использования автоматически генерируемой опции, которая имеет разные аргументы g ++ в зависимости от платформы?

Ответы [ 3 ]

1 голос
/ 29 ноября 2011

У меня лично была одна и та же цель для проекта, и я пришел к выводу, что Qt framework был лучшим для меня. Он работает с несколькими языками, строками Unicode, XML, сетевыми коммуникациями, пользовательскими интерфейсами, похожими на нативные, консольными приложениями: он может выполнять ОЧЕНЬ много.

Однако, как указал Пол, вам действительно нужно планировать это с самого начала.

Qt хорошо абстрагирует платформу (в модуле с именем QtCore), позволяя вам писать ванильный код C ++, или вы можете включить некоторые расширения языка Qt C ++, которые вспомогательное приложение Qt назвало moc (мета-объект compiler) создает vanilla C ++, из которой он может быть скомпилирован наиболее распространенными компиляторами C ++.

Он также имеет изящный кроссплатформенный генератор make-файлов под названием qmake, который работает с файлами проекта для создания обычных файлов make для платформы, на которой он работает.

Вне головы, по крайней мере, Windows XP и 7, OSX 10.4, 10.5, 10.6 поддерживаются в настоящее время. Но обратите внимание, что OSX Lion (на момент написания) официально не поддерживается, но я подозреваю, что это будет в следующем выпуске.

0 голосов
/ 08 февраля 2012

Несмотря на то, что Eclipse может нормально работать как в OS X, так и в Windows, он не предназначен для такого использования.

Лучший способ сделать это - использовать отдельные проекты IDE для каждой платформы.Это самый простой способ иметь уникальные настройки компиляции для нескольких платформ.

Да, вы можете использовать два проекта затмения.Кроме того, нет ничего необычного в том, чтобы иметь проект X-Code для OSX и проект Visual Studio для MS Windows.

0 голосов
/ 29 ноября 2011

Исходя из вашего описания, я не уверен, что вы легко сможете сделать его кроссплатформенным.Даже без использования сторонней библиотеки вы должны предоставить отдельный код для OSX и Windows.В большинстве случаев они сначала проектируют систему как кроссплатформенную.Действительно сложно сделать существующий проект на одной платформе для кросс-одного.Если у вас есть кроссплатформенное требование, вам лучше сначала спроектировать таким образом и переписать с нуля.

...