Re[6]: Raspberry Pi dev device.
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 25.03.23 09:15
Оценка: +1
Здравствуйте, alpha21264, Вы писали:

A>1) Она не работает. Ты конечно можешь её заставить (иногда),

A> но она будет всё время отваливаться по самым идиотским причинам и в произвольные моменты времени.

Возможно, я что-то делаю не так, но у меня она работает всегда и не отваливается. Возможно, я что-то делаю не так — например, делаю ее под виндой.

A>2) Она обязательно соберёт не то. Не под ту архитектуру, не под ту версию.


Ни разу такого не было. Очевидно, виновата винда.

A>3) Будешь трахаться с библиотеками и их версиями.


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

A>На Raspberry у тебя всегда будет одно, на PC другое.


Это опять же из-за кривой идеологии *nix ("в каждой системе обязана быть среда для сборки"), от которой польза только для типовых вариантов, а для нетиповых — сплошной вред. В виндовых средствах сборки принципиально нет понятия "родной среды" — все необходимые средства всегда устанавливаются независимо, в той конфигурации, которая необходима. Конечно, бывают проекты с инструкциями вроде "собирать только под VS 2015.3", но и это всего лишь означает набор известных заголовочных/библиотечных файлов, не более того.

Если мне вдруг приспичит поднять на винде под Raspberry среду для сборки, под нею соберутся правильные бинарники с той же функциональностью, что и под виндой на x64 — хоть для arm64, хоть для x64, хоть для x86. Даже представить себе не могу, что там нужно сделать, чтобы оно вдруг не собралось, или собралось неправильно. Различия могут быть лишь в чисто технических мелочах вроде порядка секций, для которых тот порядок не задан явно — если версии компилятора/линкера будут разными. Одинаковые версии соберут полностью идентичные бинарники и там, и там.

A>Современной программе всегда нужно не менее 100 разных библиотек.


Всегда? Не менее? Точно?

A>4) Что-то нужно мудрить с инсталлятором. make install как правило не прокатывает.


Если скрипты для установки написаны под конкретную версию/конфигурацию системы, то это предсказуемо. Если заявлено, что они могут обслуживать множество систем, но не делают этого — они просто кривые. Но только при чем здесь кросс-компиляция, как таковая? Так и говорите — "скрипты, написанные для халявной сборки под целевой системой, ломаются при изменении конфигурации".

A>5) Оно может конфликтовать с твоей основной средой разработки.


Каким образом? Конечно, если в лучших линуксовых традициях сваливать все заголовки/библиотеки в одну "системную" кучу, в которой они видны глобально и находятся по общим путям, то неудивительно. И сама кросс-компиляция здесь снова ни при чем.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.