Создание кроссплатформенной библиотеки C ++ - PullRequest
3 голосов
/ 03 марта 2010

Я хотел создать кроссплатформенный движок 2D-игр и хотел бы Я знаю, как создать кроссплатформенный проект с Makefile, чтобы я мог скомпилировать его для платформ, которые я выбрал, с настраиваемым правилом для любой платформы. Я работаю в среде Windows с Visual C ++ Express 2008, поэтому было бы неплохо если я могу использовать Visual C ++ Express в качестве IDE.

Моими платформами являются ДА, Nintendo DS и ПК.

Пожалуйста, объясните мне, что делать.

Заранее спасибо, Тамир.

Ответы [ 2 ]

6 голосов
/ 03 марта 2010

Не используйте make, используйте кроссплатформенный инструмент, такой как cmake, он позаботится о генерации платформы для вас. Как и в Windows, он будет генерировать файлы проекта для использования Visual Studio; в Linux он создаст файлы GNU make для вас. Вы можете настроить его, чтобы найти правильные версии нужных библиотек и всего остального. Cmake великолепен.

CMake - это не компилятор (и не make) - это кроссплатформенная система автоматизации сборки. Он позволяет вам работать на любой платформе и по умолчанию предполагает, что вы разрабатываете для платформы, на которой вы работаете. Вы можете указать параметры, если вы хотите сделать другие вещи. Тем не менее, большая часть "кроссплатформенного" материала все еще остается в вашем коде. Я бы также порекомендовал библиотеку, которая была протестирована на многих платформах, например Boost . Использование Boost может помочь обеспечить бесперебойную работу всего кода в любой системе, и использование его практически не требует дополнительных затрат.

1 голос
/ 03 марта 2010

Я знаю, что вы можете использовать Makefiles для выполнения #defines, что, в свою очередь, является распространенным приемом для выгрузки кусков кода. Существуют также способы определения платформы, хотя в основном это касается различий Mac / Windows / Linux.

Кроме того, Трэвис, вероятно, прав; кросс-платформенность самих ваших make-файлов действительно превосходна, так как проще настроить серверы сборки и все такое.

...