LINUX.ORG.RU

История изменений

Исправление hateyoufeel, (текущая версия) :

Какими библиотеками? Посмотри на какой нибудь TDM-GCC, там компилятор и основные утилиты, библиотеки типа SDL ты можешь уже собрать к своем приложению сам. Clang же тоже не тащит за собой arm32,arm64,riscv,mips версии всех библиотек мира.

Окей, да. Мы тут две отдельные проблемы обсуждаем:

  1. GCC сосёт;
  2. Кросскомпиляция требует адекватного управления пакетами в префиксе.

Второе, кстати, решается в пару строк в Nix:

let
  pkgs = (import <nixpkgs> {}).pkgsCross.aarch64-multiplatform;
in
pkgs.pkgsStatic.callPackage ({ mkShell, zlib, pkg-config, file }: mkShell {
  # these tools run on the build platform, but are configured to target the host platform
  nativeBuildInputs = [ pkg-config file ];
  # libraries needed for the host platform
  buildInputs = [ zlib ];
}) {}

А дальше можно запустить nix-shell и собирать в нём всё под целевую платформу. Ляпота! Никаких портянок на баше.

Исходная версия hateyoufeel, :

Какими библиотеками? Посмотри на какой нибудь TDM-GCC, там компилятор и основные утилиты, библиотеки типа SDL ты можешь уже собрать к своем приложению сам. Clang же тоже не тащит за собой arm32,arm64,riscv,mips версии всех библиотек мира.

Окей, да. Мы тут две отдельные проблемы обсуждаем:

  1. GCC сосёт;
  2. Кросскомпиляция требует адекватного управления пакетами в префиксе.

Второе, кстати, решается в пару строк в Nix:

let
  pkgs = (import <nixpkgs> {}).pkgsCross.aarch64-multiplatform;

in

pkgs.pkgsStatic.callPackage ({ mkShell, zlib, pkg-config, file }: mkShell {

  # these tools run on the build platform, but are configured to target the host platform

  nativeBuildInputs = [ pkg-config file ];

  # libraries needed for the host platform

  buildInputs = [ zlib ];

}) {}

А дальше можно запустить nix-shell и собирать в нём всё под целевую платформу. Ляпота! Никаких портянок на баше.