Сделайте я должен кросс-скомпилировать свою программу, когда моя цель является дугой на 64 бита. и хост является дугой на 32 бита от x86 семейства?

Если SSD должен быть Вашей единственной дисковой платформой, независимо от количества устройств, то у Вас есть quandry; как минимизировать записи при поддержании надежности и производительности.

Строго говоря, ext4, и 3 в этом отношении, NILFS и почти любая другая современная файловая система поддержит журнал. Обычно это желательно, однако, при контакте с устройствами SSD, это увеличивает записи, выполненные против устройства, и таким образом уменьшает его продолжительность жизни. Одна опция состоит в том, чтобы выбрать стандартный IDE, SATA или другое устройство, в которое файловая система может записать свой журнал. Таким образом, можно поддержать преимущества журналирования, не жертвуя продолжительностью жизни устройства (устройств) SSD. В случае ext4 это может быть выполнено как: mke2fs -O journal_dev /dev/external_device затем присоединенный к определенной файловой системе как: mkfs.ext4 -J journal=/dev/external_device. Больше информации может быть найдено в странице справочника.

Дополнительная функция файловых систем для учета, когда соглашение с устройствами SSD является atime. Установка atime в файловой системе может решительно увеличить число записей к данному устройству со временем. Опции для изменения этого поведения включают 'relatime' и 'noatime'.

Так как мы, кажется, фокусируемся на ext4, документация ядра относительно файловой системы, включая ее доступные варианты, доступна для ссылки здесь.

Некоторые другие опции рассмотреть: noload, как vorbote предложенный, и errors=remount-ro;

6
22.12.2010, 22:20
2 ответа

Весь amd64 (т.е. 64-разрядный x64) процессоры может выполнить 32-разрядные x86 двоичные файлы. Кроме того, в большинстве операционных систем можно запустить x86 программы на amd64 ОС. Таким образом, часто возможно развернуть x86 двоичные файлы на amd64 процессорах.

Желательно ли сделать так другой разговор. 64-разрядные Ose часто идут с ограниченным набором 32-разрядных библиотек, поэтому если Ваша программа будет пользоваться некоторыми редкими библиотеками, то будет легче установить 64-разрядный исполняемый файл. В зависимости от Вашего приложения, там может или может не быть преимущество производительности для 32-разрядных или 64-разрядных двоичных файлов.

Если Вы решите, что хотите развернуть 64-разрядные исполняемые файлы, то Вам будет нужна перекрестная-compililation среда для amd64 (иначе x86_64) архитектура, работающая на x86 архитектуре. Это означает и компилятор и статические библиотеки связываться против.

gcc установка может совместно использовать frontends и включать несколько бэкендов. Но не много дистрибутивов поставлются с amd64 средствами разработки на x86 платформах, таким образом, Вам, вероятно, придется добраться, Ваше собственное (gcc довольно просто, чтобы кросс-скомпилировать). То же идет, чтобы библиотеки связались против (конечно, после того как у Вас есть компилятор, можно перекомпилировать их из источника).

Как пример, Ubuntu 10.04 на x86 идет с версией “мультиlib” gcc и amd64 бэкенда плюс маленький набор 64-разрядных пакетов разработки (libc6-dev-amd64 libc6-dev-amd64 http://bit.ly/software-small установки и зависящий и зависимые пакеты).

5
27.01.2020, 20:27

да Вы можете: просто укажите корректные comnpiler опции, и Вы сделаны. Вы не сможете выполнить получающийся двоичный файл на своем хосте на 32 бита.

Я думаю, что Вам нужно: CFLAGS =-m64 необходимо будет также установить LD_LIBRARY_PATH и подобный 64-разрядным заголовкам и библиотекам для зависимостей.

stackoverflow имеет вопрос с большим количеством ответов.

3
27.01.2020, 20:27

Теги

Похожие вопросы