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

问题描述 投票:1回答:2

我无法使用Actix编译基本示例。我怀疑我可能会遗漏一些图书馆,但我不知道它可能是什么。我几天前也升级到Mojave,但我不确定这是否相关。

它似乎抱怨ar crs和运行此命令时ranlib发生的内部错误。

卖弄.人生:

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"

Backtrace我获得:

    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太大而无法包含在Stack Overflow上。

rust macos-mojave
2个回答
0
投票

它通过MacPorts安装cctool后似乎有效。

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


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

© www.soinside.com 2019 - 2024. All rights reserved.