C ++ кроссплатформенные библиотеки - PullRequest
3 голосов
/ 08 марта 2011

Я не совсем новичок в C ++, но мне так и не удалось разобраться с библиотеками.

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

Возможно ли это и как я могу сделать это кроссплатформенным?(Например, процесс будет работать на Windows, Linux и Mac)

Ответы [ 4 ]

4 голосов
/ 08 марта 2011

Как сказал @Armen в самых простых терминах, одно из требований здесь - это библиотека, которая работает как кроссплатформенная, насколько это возможно / необходимо.Qt - очевидный выбор для этого.Есть и другие, такие как wxWidgets, которые достигают того же, и выбор за вами.

Во-вторых, все «обновляемые» библиотеки должны соответствовать двоичной совместимости (что Qt обязуется делать для каждогоосновная версия, не знаю о wxWidgets).

Третий и, вероятно, "да, дух!"часть: вам нужно собрать их как общие библиотеки и связать эти общие библиотеки.

Эти три пункта должны позволить вам заменить библиотеки без перестройки самого исполняемого файла и сохранить его как можно меньшим.Способ обновления будет различным на разных платформах (Linux: автоматически через репозитории, Mac и Windows вручную или через собственное программное обеспечение для обновления, возможно, macports для Mac?)

2 голосов
/ 08 марта 2011

Да, используйте Qt

1 голос
/ 08 марта 2011

Две библиотеки, на которые я клянусь, на которые вы можете захотеть взглянуть

СДЛ:
http://www.libsdl.org/
репетит:
http://lazyfoo.net/SDL_tutorials/index.php

SFML:
http://www.sfml -dev.org /
репетит:
http://www.sfml -dev.org / tutorials / 1.6 /

Обе библиотеки графики / сети / аудио!

0 голосов
/ 08 марта 2011

Действительно, это не имеет смысла. В любом случае вам придется перекомпилировать двоичный файл, когда вы переместите его на другую платформу, потому что разные платформы используют разное оборудование и используют разные двоичные форматы. Нет причин не просто ссылаться в вашем «платформо-зависимом» коде на один и тот же двоичный файл.

Кроссплатформенность на уровне источника имеет смысл, однако, .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...