Я пишу программу Linux, которая в настоящее время компилируется и отлично работает на x86 и x86_64, и теперь мне интересно, есть ли что-то особенное, что мне нужно сделать, чтобы заставить его работать с другими архитектурами ,Потенциальные проблемы с переносом на разные архитектуры
То, что я слышал, что для кросса-коды платформы я должен:
- Ничего о размере указателя, междунар или size_t
- Не делать предположение о порядке байт не предполагаю (Я не делаю никакого смещения бит - я полагаю, что gcc оптимизирует мою силу для двух умножений/деления для меня)
- Не используйте монтажные блоки (очевидно)
- Убедитесь, что ваши библиотеки работают (я используя SQLite, libcurl и Boost, которые кажутся довольно кросс-платформенными)
Есть ли что-нибудь еще, о чем мне нужно беспокоиться? В настоящее время я не нацелен на какие-либо другие архитектуры, но я ожидаю, что в какой-то момент я буду поддерживать ARM, и я полагаю, что я мог бы также заставить его работать над любой архитектурой, если можно.
Кроме того, что касается моего второго пункта о порядке байтов, мне нужно сделать что-нибудь особенное с вводом текста? Я читаю файлы с getline()
, поэтому кажется, что это тоже нужно делать автоматически.
Да, я надеялся, что, поскольку мой сетевой код просто завиток, и мой ввод все использует cin или getline, о которых не о чем беспокоиться. –