Подтвердить что ты не робот

Программирование в Swift на Linux

Я хотел бы подготовить среду для работы с Swift на Ubuntu 16.04.

Я установил Swift и Atom редактор. Я установил пакет Script, который позволяет мне запускать код из редактора Atom.

Как правило, хорошо, когда я компилирую и запускаю один файл (Ctrl + Shift + B shortcut). Проблема в том, что я хотел бы создать проект, состоящий из нескольких файлов. Классы, определенные в других файлах (а не компиляция), не видны (ошибка компиляции).

Можно ли настроить редактор для компиляции и запуска всего проекта? Как импортировать внешнюю библиотеку, например ObjectMapper?

4b9b3361

Ответ 1

Вы можете использовать пакет Atom build. Он позволяет создавать пользовательские команды сборки и т.д., Используя общие поставщики сборки. Вы можете создавать с помощью Makefile или JSON или CSON или YAML или даже Javascript. Он обеспечивает достаточную гибкость, которую вы можете построить практически во всем. Просто создайте файл сборки так, чтобы он указывал на все файлы для сборки с помощью правого компилятора (возможно, swiftc в вашем случае). С помощью файла сборки Javascript вы можете даже указать команду для запуска до и после сборки, например, для запуска вашей новой программы.

Ответ 2

Там отличный проект с открытым исходным кодом, который я смотрел под названием Marathon. Это менеджер пакетов, и они работали над развертыванием в Linux. Я не уверен, сколько успехов у них было, но вы можете следовать за ним и, возможно, помогать.

https://github.com/JohnSundell/Marathon/issues/37

Изменить: похоже, что он работает на Linux!

git clone https://github.com/JohnSundell/Marathon.git
$ cd Marathon
$ swift build -c release
$ cp -f .build/release/Marathon /usr/local/bin/marathon

Ответ 3

Для зависимостей вы должны использовать Swift Package Manager.

Вы можете проверить, как Vapor построен - он также готов для создания приложений для Ubuntu.

Кроме того, панель инструментов Vapor поможет вам в других проектах https://docs.vapor.codes/2.0/getting-started/install-on-ubuntu/