Форум программистов, компьютерный форум, киберфорум
Go (Golang)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
1 / 1 / 0
Регистрация: 28.09.2015
Сообщений: 41
1

Go и разные типы ОС

08.11.2015, 01:58. Просмотров 866. Ответов 5
Метки нет (Все метки)


Доброго времени суток! Подскажите пожалуйста программа написанная на Go может работать и на Windows и на Mac OS и на Linux, не меняя исходника или все-таки придется адаптировать программу под каждую ОС? Заранее спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.11.2015, 01:58
Ответы с готовыми решениями:

Разные типы
Как правельно преобразовать здесь типы для probability и PMAX, PMAX1, JMAX, JMAX1. Вот код: ...

Разные типы в структуре
утро доброе всем! БП 2.0 обычные формы старый начинающий полупрограммист 1с внешняя обработка...

Ссылки. Разные типы.
Доброй ночи. Уже как-то спрашивал, но нормального ответа не получил к сожалению. Есть код:...

Разные типы параметров
Доброго времени суток! Возник вопрос следующего характера. Есть некая функция, допустим, проверка...

5
Эксперт NIX
1531 / 594 / 209
Регистрация: 28.06.2015
Сообщений: 1,314
Записей в блоге: 16
08.11.2015, 19:41 2
Все должно работать корректно, главное что бы компилировалось на той системе и архитектуре на которой будет выполнятся.
Но вот у меня все таки есть сомнения относительно корректности определенных редакторов винды, слышала о несоответствии
некоторых невидимых знаках как преренос и окончание строки. Но я далеко не специалист по виндовс и определенно ответить не могу.
1
2402 / 1806 / 396
Регистрация: 15.12.2013
Сообщений: 7,755
08.11.2015, 20:37 3
Цитата Сообщение от fierwolf922 Посмотреть сообщение
не меняя исходника или все-таки придется адаптировать программу под каждую ОС?
Обычно да,если не используются системно-зависимые функции.

Цитата Сообщение от nezabudka Посмотреть сообщение
Но вот у меня все таки есть сомнения относительно корректности определенных редакторов винды, слышала о несоответствии
некоторых невидимых знаках как преренос и окончание строки.
А я слышал,что эта проблема осталась в прошлом почти для всех редакторов и ЯП
1
1 / 1 / 0
Регистрация: 28.09.2015
Сообщений: 41
08.11.2015, 21:12  [ТС] 4
S_el, контекст вашего сообщения не уловил! То есть все-таки придется адаптировать каждую ОС?
0
2402 / 1806 / 396
Регистрация: 15.12.2013
Сообщений: 7,755
08.11.2015, 21:52 5
Цитата Сообщение от fierwolf922 Посмотреть сообщение
То есть все-таки придется адаптировать каждую ОС?
нет,только компиляция + сборка под нужную платформу. Адаптировать надо будет если использовать системо-зависимые функции(обычно специфические для работы с файловой системой,и.т.п).
1
24 / 7 / 0
Регистрация: 08.10.2015
Сообщений: 36
15.11.2015, 15:54 6
Цитата Сообщение от fierwolf922 Посмотреть сообщение
Доброго времени суток! Подскажите пожалуйста программа написанная на Go может работать и на Windows и на Mac OS и на Linux, не меняя исходника или все-таки придется адаптировать программу под каждую ОС? Заранее спасибо!
Вопрос смысла не имеет.
Так как программы бывают разные очень разные.
Некоторая часть функционала, завязанная на особенности конкретной ОС, работать не будет.

Например:
Веб-сервер, запускаемый из командной строки, да, и скопилируется и запуститься.
Однако, под Win он запросто будет слушать 80 порт (http по умолчанию), но в Linux не запуститься от обычного пользователя.
Если он при этом демон (daemon) - то в Windows и *nix разные способы демонизации. Впрочем, существуют библиотеки, которые стремятся эти различия сгладить. Гм. Существуют. Но эти библиотеки и имеют свои уникальные глюки под разными ОС.
Если отличия даже в базовых вещах. Например, логи: syslog - встроенный в стандартную библиотеку, не работает под Win. Если ты подключишь модуль log/syslog, то под Windows даже не скомилируешь.
Ну и т.д. и т.д.

Многое зависит от того как ты пишешь программу.
http://habrahabr.ru/post/269943/
Например, при работе с путями файлов не зашивать в коде осезависимые "/" или "", а использовать os.PathSeparator и т.п. и т.д.

Если ты учитываешь все это - то легко все запускается на других осях (с минимальными модификациями).
Бывает, что приходится отказывать от чего-то или реализовывать небольшие куски кода под конкретную ОСь (для этого используется специальный комментарий "// +build !windows, !darwin")

К слову, кросс-компиляция на Go реализована нынче очень просто (пример, запускаем под Win32):
SET GOOS=linux
SET GOARCH=amd64
go build

То есть разработчики Go постарались. Все легко и просто.
Если программа простая, то 0 усилий.
Если программа посложнее - самому тоже нужно мозгами пошевелить.

Добавлено через 5 минут
Цитата Сообщение от nezabudka Посмотреть сообщение
Все должно работать корректно, главное что бы компилировалось на той системе и архитектуре на которой будет выполнятся.
Но вот у меня все таки есть сомнения относительно корректности определенных редакторов винды, слышала о несоответствии
некоторых невидимых знаках как преренос и окончание строки. Но я далеко не специалист по виндовс и определенно ответить не могу.
Вы про это, что ли?

https://ru.wikipedia.org/wiki/... 0%BA%D0%B8

Могут быть противные редакторы, которые не умеют приятно отображать строки исходного текста, сформированные в другой ОС. Но таких отсталых в наше время не так уж и много.

На компиляцию не влияет. А вот на работу программы - да, может влиять, если она работает со строками и некорректно обрабатывает конец строки.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.11.2015, 15:54

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Разные типы данных
Нужно выполнить простое вычитание одного слагаемого из другого. Проблема в том, что первое задано...

Разные типы заявок
как изменить программно в Delay время задержки? например, необходимо если агент с параметром...

массив содержащий разные типы
Объясните, пожалуйста, Может ли массив содержать элементы разных типов?

Разные типы в обобщенном методе
Здравствуйте. Хочу написать следующий метод: подается массив типа int или string или object и тд,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.