Мой проект зависит от ffmpeg-sys
ящика, который настроен для статической сборки следующим образом:
[dependencies.ffmpeg-sys]
version = "3.4.1"
default-features = false
features = ["avcodec", "avformat", "swresample", "build", "static"]
Мой проект состоит из одного простого файла:
extern crate ffmpeg_sys;
use ffmpeg_sys::av_register_all;
fn main() {
unsafe { av_register_all() };
println!("Hello, world!");
}
КогдаКомпиляция с cargo build
Я получаю следующую ошибку:
Пример компиляции v0.1.0 (файл: /// home / ec2-user / sample)
Ошибка: не удалось связать с 'cc': код выхода: 1 |= note: "cc" "-Wl, - по мере необходимости" "-Wl, -z, noexecstack" "-m64" "-L"
[... исключено для ясности ...]
В функции 'sample :: main :: hbbb19855251826d6': /home/ec2-user/sample/src/main.rs:6: неопределенная ссылка на 'av_register_all' collect2: ошибка: ld вернул 1 состояние выхода
Необходимые статические библиотеки, libavformat.a
и друзья, находятся в папке target/build/debug
, показывая, что ffmpeg-sys
успешно скомпилировал библиотеки.
Вот rustc
сбой команды:
Причина: процесс не завершился успешно: 'rustc - пример -crate-name src / main.rs --crate-type bin --emit = dep-info, link -C debuginfo = 2 -C metadata = 250bf40eb277d05a -C extra-filename = -250bf40eb277d05a --out-dir / home / ec2-пользователь / sample / target / debug / deps -C incremental = / home / ec2-user /sample / target / debug / incremental -L зависимость = / home / ec2-пользователь / sample / target / debug / deps --extern ffmpeg_sys = / home / ec2-user / sample / target / debug / deps / libffmpeg_sys-fa3ff87f80f2d27e.rlib-L родной = / home / ec2-пользователь / пример / цель / отладка / сборка / ffmpeg-sys-0b3c813f29a9a20e / out / dist / lib '(код выхода: 1)
libffmpeg_sys-fa3ff87f80f2d27e.rlib
равен 207M, и поэтому я предполагаю, что содержит всестатически скомпилированный код ffmpeg.
Это происходит только тогда, когда я использую экземпляр Amazon Linux.Компиляция на моем обычном рабочем столе Fedora 28 приводит к работающему двоичному файлу.
Как мне выяснить причину этой ошибки?