Войти
ПрограммированиеФорумОбщее

Совместимость процессоров для одной операционной системы. (2 стр)

Страницы: 1 2 3 Следующая »
#15
10:45, 23 дек. 2020

Припоминается установка firebird...
Во первых, в качестве одного из инструментов сборки firebird используется сама firebird. Иными словами, чтобы ее установить, надо чтобы она уже была установлена ранее, хотя бы огрызок. Я тогда выкрутился, но что делать в общем случае не знаю до сих пор.
Во вторых, там классические подляны в скрипте установки, когда в нескольких местах поменяли две строчки местами и ни фига не работает. Кто с подобными скриптами возился многократно, найдет и исправит, но конечный юзер этого никак не сделает. Скрипты там весьма объемные, методом тыка не получится.


#16
(Правка: 14:53) 14:46, 23 дек. 2020

skalogryz
> это называется кросс-компиляция!
я не считаю это кросс-компиляцией. Для меня кросс-компиляция - это тупиковый путь, который жрёт ресурсы не по делу. (но не считаю, что этого не может быть!)
Для меня это больше совместимость одной программы для разных систем. )))

> Но у тебя же fink и homebrew, и тебе, наверное, пофиг... а может они только
> головной боли добавляют! :)
вероятно, но вроде основная часть нормально работает! Время покажет. )))

0iStalker
> Берёшь исходники и компилируешь в нужную систему, точно таким же способом, как
> компилируешь под эту систему своё приложение.
ну да... это ведь самый верный ответ... но... блин... я не хочу ещё глубже изучать параллельные языки... без этого бы обойтись...

Zab
> Понятно, что могут быть и скомпилированные варианты, но они только для тех
> редких случаев, когда совместмость есть. Причем, совместимость не только по
> аппаратуре, но и по конфигурации ядра системы.
Да именно это мне и нужно. ))) Мой код будет совместим с разными системами.

#17
14:50, 23 дек. 2020

Хорошо, в чём мне компилировать библиотеки от Homebrew под разные процессоры, на Windows? Linux? MacOS? (я так понимаю, там Си++)

Могу ли я просто взять библиотеку и скомпилировать её на одной системе под любую другую. Как я делаю со своим кодом в Lazarus/FPC?

#18
(Правка: 15:54) 15:52, 23 дек. 2020

Mirrel
Homebrew это только MacOS.
В других системах иные средства, но в большинстве нет никаких способов распространения софта в скомпилированном виде.
Рассмотрим вариант, когда есть, пакеты в ubuntu, к примеру. Есть система, есть софт в пакетах, но тебе понадобилось изменить настройки системы, ограничение на число файловых дескрипторов подвинуть. Это ж не винда, где такие вещи делаются в реестре, в юниксовых системах ты меняешь константы в системных h-файлах, после чего перекомпилируешь ядро системы. А потом надо и весь установленный софт перекомпилировать, потому как от системых констант зависит многое, в том числе размер структур, которыми все приложения пользуются. Даже если кажется, что все работает и без перекомпиляции, это только кажется, не нарвался еще, значит. И пакеты уже не работают. И заметь, это все на одном и том же процессоре.

#19
16:14, 23 дек. 2020

Mirrel

> Хорошо, в чём мне компилировать библиотеки от Homebrew под разные процессоры, на Windows? Linux? MacOS? (я так понимаю, там Си++)

Применительно к С++ для начала не ленишься и вызубриваешь от корки до корки:

https://cmake.org/cmake/help/latest/guide/tutorial/index.html

#20
19:34, 23 дек. 2020

Zab, вы ни сколько не вникали, в то, что я пишу.

Изначально я задал вопрос, будет ли работать то, что скомпилировано на одном процессоре, на другом процессоре.
Мне ответили: "Нет" (головой я это понимал, но вдруг прогресс дошёл?)

Теперь меня интересует компиляция под разные процессоры и разные платформы!!! И мои скомпилированные программы будут в таком случае зависеть от входящих в их состав библиотек, которые так же должны быть скомпилированы под разные системы (под соответствующую систему).

nonamezerox, благодарю... пойду грызть гранит науки... Хоть и не хочется...

#21
(Правка: 20:29) 20:28, 23 дек. 2020

Mirrel
Я пытался объяснить, что раз уж ты выбрал юникс, то там вообще все плохо в этом деле. Не только разные процессоры, не только разные версии системы, но даже смена настроек одной версии требует перекомпиляции всего. И никакой совместимости на уровне бинарников. Если у тебя что-то без перекомпиляции не упало, значит еще не успело упасть.
В винде иначе.

#22
20:33, 23 дек. 2020

все разжевано на тарелочке, странно да?

#23
21:09, 23 дек. 2020

baga
> все разжевано на тарелочке, странно да?
странно то, что эта ссылка вообще сюда попала. Там, честно говоря, кроме общей информации, нет вообще ни чего.

#24
(Правка: 21:20) 21:20, 23 дек. 2020

Zab
> Не только разные процессоры, не только разные версии системы
мои версии программы будут зависеть больше от X-в, и будут падать, может быть, в том случае, если вдруг Wayland не совместим с X-ми. (Это в Linux и я не проверял, к сожалению...)

#25
(Правка: 21:53) 21:48, 23 дек. 2020

Mirrel
Маленький примерчик (ты похоже не понимаешь всей серьезности).
В коде работы с файлами и сетью повсюду понатыканы select'ы. В качестве параметра селекта есть некий fd_set. Он создается макросами, если заглянуть внутрь, увидишь массив бит, по биту на каждый дексриптор в системе. Длина массива определяется системными константами, которые вполне себе изменяются при конфигурировании. Протокол такой, что с непарным размещением/удалением промашек скорее всего не будет, но нужные тебе биты должны быть в допустимой области, а если у тебя константа в ядре системы и в приложении не совпадает, ты начнешь менять биты за пределами своего массива, со всеми вытекающими последствиями.

#26
22:04, 23 дек. 2020

Zab
> В коде работы с файлами и сетью повсюду понатыканы select'ы.
с файлами своя работа, с сетью ещё не встречался, думаю подобное будет.

#27
(Правка: 22:13) 22:09, 23 дек. 2020

Mirrel
Это не только у тебя в коде, все утилиты и библиотеки завязаны на системные константы, которые вполне себе изменяемые. Юниксовый апи ни фига не стандартизирован на двоичном уровне.

Обычно делают универсальный дистрибутив, развертывающийся из исходников. Для отдельных систем могут быть доступны скомпилированные варианты, для каждой системы свой, по ее местным правилам оформленный, чтобы на типовых конфигурациях не мучить юзеров полной процедурой развертывания.

#28
(Правка: 22:28) 22:26, 23 дек. 2020

Zab
> Обычно делают универсальный дистрибутив, развертывающийся из исходников. Для
> отдельных систем могут быть доступны скомпилированные варианты, для каждой
> системы свой, по ее местным правилам оформленный, чтобы на типовых
> конфигурациях не мучить юзеров полной процедурой развертывания.
Может быть это у меня уже сделано? Сделано конечно не мной, отдельная благодарность людям за информацию и человеку что собрал это всё воедино. Мной это только доработано.

И понятно дело, что всё должно пройти тесты не один раз, даже не одну сотню тестов, чтоб выяснить недоработки. Но бОльшая часть кода уже проверена и проверена временем, людьми, которые этим уже пользовались и пользуются.

#29
22:34, 23 дек. 2020

Ты упоминал Homebrew, это как раз и есть местная система развертывания дистрибутивов для MacOS. Может быть ее и еще куда перетащили, но это система эпловская. Но хоть MacOS с 10й версии и строится на основе BSD юникса, в нем очень много особенностей, из за которых его почти что за юникс не считают. Требуется прилагать специальные усилия, чтобы твоя юниксовая программа заработала еще и там, даже если она не очень большая.

Страницы: 1 2 3 Следующая »
ПрограммированиеФорумОбщее