Зависит от платформы и от того, что в коде.
С C / C ++ / ... (нативный код) обычно требуются разные файлы, но некоторые платформы могут предоставлять способ их объединения.
В «управляемых / визуализированных» системах (например, Java, .NET) у вас может быть один файл, который будет работать в любом случае (JIT / среда выполнения обрабатывает специфичный для процессора перевод), но с использованием собственных интерфейсов (например, P / Inkvoke ), возможно, в этом случае произойдет сбой (например, изменится смещение структурных полей).