Лучшие практики для C++ портативное [закрытое] приложение с открытым исходным кодом

HUZZAR!

Это мой проклятый скрипт DataIO!

По какой-то причине моя запись в файл Json блокирует продолжение программы!

Я заметил что версия Build ожидает остановки воспроизведения, прежде чем записать файл на диск ...

Так что я вернусь к чертежной доске для этого сценария и посмотрю, смогу ли я сделать эту крошечную тестовую игру Great Again;)

8
задан Navaneeth K N 26 March 2009 в 06:55
поделиться

7 ответов

Самой важной вещью для Вашего проекта нагнать является мобильность. Должно быть легко создать и работать за всеми.

GCC (g ++) является действительно предпочтительным компилятором. Это прибывает из мира с открытым исходным кодом и поэтому наиболее широко принято им.

Однако простой Make-файл не сократит его. При генерации его использование CodeBlocks или любой другой IDE имеют проблему: из-за их платформы, другие разработчики должны будут, вероятно, генерировать свое собственное, но будут не обязательно иметь CodeBlocks под рукой или просто не хотят использовать его.

Там существуйте несколько различных межплатформенных систем сборки, которые являются агностиком IDE. Некоторые из них создают Make-файлы, другие не используют, делают, но создают самостоятельно.

  • Наиболее широко принятой системой сборки являются Автоинструменты. Однако трудно учиться, нарушенный, и полная боль в заднице.
  • Из многих других вариантов я рекомендую WAF. Это уже доказано несколькими большими проектами с открытым исходным кодом, при этом XMMS2 является хорошим примером (в то время как не очень популярный проект, это имеет большую сборку с большим количеством плагинов и основывается на большом количестве платформ включая OS X и Windows). В то время как WAF очень широко не принята, это предназначено, чтобы быть поставленным с источником и легкое установить. Моя рекомендация для Вас.

Править: начать с Вашим проектом С открытым исходным кодом, я, также рекомендуя эту книгу Karl Fogel (доступный для чтения онлайн). Развлекайтесь!

7
ответ дан 5 December 2019 в 10:05
поделиться

Компилятор C++ GNU является относительно хорошим выбором для межплатформенной работы, за исключением того, что в Windows только относительно старая версия (3.4) исходно поддерживается. Работа идет полным ходом для портирования 4.x-ряда на Windows, но до сих пор это не готово к прайм-тайму.

Вместо того, чтобы фокусироваться на какой компилятор использовать, я вместо этого сфокусировался бы на который язык использовать. При записи стандарту ANSI C++ будет иметь большое значение для создания межплатформенного кода. В максимально возможной степени скройте определенное для платформы поведение позади хорошего инструментария, такого как QT.

Для межплатформенных сред сборки это может зависеть, на каком инструментарии Вы используете. QT имеет QMake, который относительно хорош. CMake является другим востребованным выбором. Я избежал бы Автоинструментов, так как это имеет очень плохую мобильность за пределами UNIX - использование Автоинструментов на Win32 является очень часто мучением проклятого.

Наконец, начните работать над несколькими платформами теперь. VMware неоценим для чего-то вроде этого. Заставьте свой код компилировать на Linux на FreeBSD и в Windows. Если можно достигнуть тех трех целевых показателей, перемещение в другие платформы будет чрезвычайно легче в будущем.

3
ответ дан 5 December 2019 в 10:05
поделиться
1
ответ дан 5 December 2019 в 10:05
поделиться

Вы могли бы также хотеть смотреть на эту книгу:

http://www.amazon.ca/Write-Portable-Code-Introduction-Developing/dp/1593270569 alt text

1
ответ дан 5 December 2019 в 10:05
поделиться

Компилятор: Я планирую использовать g ++ и слышал, что это является кросс-платформенным. Это - хороший выбор?

Да, но который версия? У Вас есть список известных проблем для версии, которую Вы собираетесь использовать?

Make-файлы: Я видел Код:: редактор Блоков и это генерируют make-файлы на мухе, и Вы не должны писать тот вручную. Действительно ли это - лучшая практика, или я должен создать make-файлы?

Классический выбор. Вероятно, необходимо будет настроить их, когда проект вырастет.

Что другие настройки должны заботиться при разработке межплатформенных приложений?

G ++/makefile порт доступен навсегда основная платформа. Так, после того как Вы удостоверились, что не используете платформы определенный API или создаете Вас, должно быть хорошим для движения.

Что относительно следующего?

  • Сторонние библиотеки? Удостоверьтесь, что Вы не попадаетесь на платформу определенная.
  • Лицензирование проблем (код и другие)
  • SCM
1
ответ дан 5 December 2019 в 10:05
поделиться
  • Начните основываться на нескольких платформах теперь: это выставляет проблемы вначале.
  • Если Вы только заботитесь о Linux и Mac OS X, то g ++ должен быть очень хорошо. Существуют различные IDE и доступные системы сборки. Вы могли бы хотеть рассмотреть использование автоинструментов для выручения с поддержкой конфигурации.
  • Если Вы хотите быть нацеленными на Windows, это становится немного более сложным. Можно использовать cygwin и/или mingw, но это может иногда быть сложно. Различные проекты используют межплатформенную сборку и системы конфигурации как CMake для заботы о многих проблемах для них.
2
ответ дан 5 December 2019 в 10:05
поделиться

В зависимости от определенных платформ QT может содержать ответы. Особенно с новой лицензией.

2
ответ дан 5 December 2019 в 10:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: