由于“ ar crs”“格式错误的对象(未知的加载命令1)”而无法在macOS Mojave上编译Actix

时间:2018-10-13 15:11:14

标签: rust macos-mojave

我无法使用Actix编译基本示例。我怀疑我可能会缺少一些库,但是我不知道它可能是什么。几天前,我还升级到了Mojave,但不确定是否与此相关。

运行此命令时,似乎抱怨ar crsranlib中发生内部错误。

main.rs:

extern crate actix_web;
use actix_web::{server, App, HttpRequest};

fn index(_req: &HttpRequest) -> &'static str {
    "Hello world!"
}

fn main() {
    server::new(|| App::new().resource("/", |r| r.f(index)))
        .bind("127.0.0.1:8088")
        .unwrap()
        .run();
}

Cargo.toml:

actix-web = "0.7.8"

我得到的回溯:

    mbp-de-matthieu:hello-world matthieu$ RUST_BACKTRACE=1 cargo build
   Compiling backtrace-sys v0.1.24                                                                                                                                                                     
   Compiling miniz-sys v0.1.10
   Compiling brotli-sys v0.3.2
   Compiling ring v0.13.2
   Compiling tokio-current-thread v0.1.3
error: failed to run custom build command for `miniz-sys v0.1.10`
process didn't exit successfully: `/Users/matthieu/Documents/Rust/actix/hello-world/target/debug/build/miniz-sys-dc81523acb01e9e7/build-script-build` (exit code: 101)
--- stdout
TARGET = Some("x86_64-apple-darwin")
OPT_LEVEL = Some("0")
HOST = Some("x86_64-apple-darwin")
CC_x86_64-apple-darwin = None
CC_x86_64_apple_darwin = None
HOST_CC = None
CC = None
CFLAGS_x86_64-apple-darwin = None
CFLAGS_x86_64_apple_darwin = None
HOST_CFLAGS = None
CFLAGS = None
DEBUG = Some("true")
running: "cc" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-fno-omit-frame-pointer" "-m64" "-Wall" "-Wextra" "-o" "/Users/matthieu/Documents/Rust/actix/hello-world/target/debug/build/miniz-sys-d59b36acd5b3db67/out/miniz.o" "-c" "miniz.c"
exit code: 0
AR_x86_64-apple-darwin = None
AR_x86_64_apple_darwin = None
HOST_AR = None
AR = None
running: "ar" "crs" "/Users/matthieu/Documents/Rust/actix/hello-world/target/debug/build/miniz-sys-d59b36acd5b3db67/out/libminiz.a" "/Users/matthieu/Documents/Rust/actix/hello-world/target/debug/build/miniz-sys-d59b36acd5b3db67/out/miniz.o"
cargo:warning=/usr/local/Cellar/cctools/855/bin/ranlib: object: /Users/matthieu/Documents/Rust/actix/hello-world/target/debug/build/miniz-sys-d59b36acd5b3db67/out/libminiz.a(miniz.o) malformed object (unknown load command 1)
cargo:warning=ar: internal ranlib command failed
exit code: 1

--- stderr
thread 'main' panicked at '

Internal error occurred: Command "ar" "crs" "/Users/matthieu/Documents/Rust/actix/hello-world/target/debug/build/miniz-sys-d59b36acd5b3db67/out/libminiz.a" "/Users/matthieu/Documents/Rust/actix/hello-world/target/debug/build/miniz-sys-d59b36acd5b3db67/out/miniz.o" with args "ar" did not execute successfully (status code exit code: 1).

complete backtrace太大,无法包含在堆栈溢出中。

2 个答案:

答案 0 :(得分:0)

通过MacPorts安装cctools后,它似乎可以工作。

由于某种原因,通过brew安装它似乎不起作用。

答案 1 :(得分:0)

我有同样的错误。

当我从此水龙头中用921代替cctools 855时,cargo build起作用了:https://github.com/dgsga/homebrew-cctools

brew unlink cctools
brew tap dgsga/cctools
brew install dgsga/cctools/mtoc

Mojave 10.14.3,Rust 1.33.0,actix-web 0.7.18