Я хотел бы написать приложение на C ++, которое должно быть совместимо как с Linux, так и с Windows. Требование заключается в том, что мне нужно разработать компилятор Linux G ++ и запустить его также на платформе Windows.
Я был бы признателен, если бы вы могли дать мне направление относительно того, как начать разработку? Какую IDE использовать и какие библиотеки мне нужно использовать, чтобы сделать код совместимым. Кроме того, я хочу также разработать пользовательский интерфейс в том же приложении, так что какой тип проекта я должен создать (как веб-проект в Java, я делаю) Спасибо.
Мое предложение заключается в использовании Qt. Он кроссплатформенный, имеет хорошую IDE (Qt Creator) и позволяет создавать GUI.
Лучшая IDE — это сама среда разработки Unix:
действительно хочу все графические элементы, которые ограничивают ваши возможности. Если вы
только начинайте, приятно избегать работы с make-файлами и т. д.,
но если вы беспокоитесь о переносимости, вам придется иметь дело
с ними все равно.
В остальном, переносимость зависит от того, что должно делать ваше приложение.
Вы можете многое сделать, используя стандартный C ++, который является своего рода переносимым. Вы будете
еще приходится иметь дело с тем, что разные компиляторы реализуют
разные версии стандарта, более-менее хорошо, но если придерживаться
до C ++ 03 у вас не должно быть слишком много проблем.
Однако есть много вещей, которые стандарт C ++ не охватывает.
Интерфейс сокетов (для сетей) довольно похож
систем, и это не должно быть слишком сложно, чтобы обернуть его в класс C ++, который
скрывает различия Такие вещи, как чтение каталогов или потоков
может быть сделано с помощью Boost, который скрывает различия. Если тебе надо
целостность транзакций, вам нужно обернуть доступ к файлу, так как
имена функций и их аргументы очень разные
между двумя системами. (Я даже не уверен, что транзакционный
целостность возможна под Windows.) Интерфейс GUI
Абсолютно другой; ваш лучший выбор будет использовать портативный графический интерфейс
интерфейс, как wxWidgets.
Наконец, независимо от того, сколько мер предосторожности вы предпримете, ожидайте, что некоторые вещи не сработают сразу после переноса. (Или, как было когда-то сказано: «Единственный переносимый код — это код, который был перенесен».)
eclipse или QtCreator могут быть вашим выбором
вы также можете использовать MINGW, настроить среду и использовать emacs для выполнения вашей задачи.