Линкер cc не найден при кросс-компиляции простого ящика на Travis CI - PullRequest
0 голосов
/ 06 декабря 2018

В рамках одного из моих проектов я должен кросс-компилировать ящик Rust со x86_64 до i686 в Linux.В настоящее время я использую Travis CI для этого с простым Hello World ящиком (бинарный ящик по умолчанию).Моя конфигурация Travis CI для соответствующей записи матрицы:

# ...

matrix:
  include:
    # ...
    - os: linux
      rust: 1.30.0
      before_script:
        - sudo apt-get update
        - sudo apt-get install -y libc6-dev:i386
      env: TARGET=i686-unknown-linux-gnu
  # ...

script:
  - rustup target install $TARGET
  - cargo build --release --target=$TARGET

К сожалению, когда я перемещаю эту конфигурацию в Travis CI, я получаю ошибку сборки :

$ cargo build --release --target=$TARGET
   Compiling test-rust-deploy-releases v0.1.0 (/home/travis/build/arnavb/test-rust-deploy-releases)
error: linker `cc` not found
  |
  = note: No such file or directory (os error 2)

error: aborting due to previous error

error: Could not compile `test-rust-deploy-releases`.
To learn more, run the command again with --verbose.
The command "cargo build --release --target=$TARGET" exited with 101.

Как мне это исправить?

1 Ответ

0 голосов
/ 06 декабря 2018

Что ж, после экспериментов и еще большего количества поисков, я изменил свою команду apt install на:

sudo apt-get install -y gcc-4.8 cpp-4.8 gcc-multilib

(первые две являются неудовлетворенными зависимостями третьей, которую нужно было устанавливать вручную).

Теперь сборка выполняется правильно.

...