gpt4 book ai didi

rust - 为什么使用freetype-rs会报链接错误?

转载 作者:行者123 更新时间:2023-11-29 07:55:26 27 4
gpt4 key购买 nike

我有一个使用 freetype-rs 的基本项目,但是当我运行 cargo run 时它报告链接错误。我的系统是 OS X Yosemite 10.10.2。

目录列表

./Cargo.toml
./src/main.rs

Cargo.toml

[package]

name = "usefree"
version = "0.0.1"
authors = ["zhch <zhch@gmail.com>"]

[dependencies]
freetype-rs = "0.1.0"

src/main.rs

#[macro_use]
extern crate freetype;

fn main() {
println!("Hello,World!");
}

cargo 运行错误

Compiling usefree v0.0.1 (file:///Users/zhangcheng/temp/d3/san)
error: linking with `cc` failed: exit code: 1
note: "cc" "-m64" "-L" "/Users/zhangcheng/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib" "/Users/zhangcheng/temp/d3/san/target/debug/usefree.o" "-o" "/Users/zhangcheng/temp/d3/san/target/debug/usefree" "-Wl,-force_load,/Users/zhangcheng/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/libmorestack.a" "-Wl,-dead_strip" "-nodefaultlibs" "/Users/zhangcheng/temp/d3/san/target/debug/deps/libfreetype-4323fafa5d970f54.rlib" "/Users/zhangcheng/temp/d3/san/target/debug/deps/libfreetype_sys-a42cc5659b21e38e.rlib" "/Users/zhangcheng/temp/d3/san/target/debug/deps/liblibc-ef5cbad4ef5c7a1e.rlib" "/Users/zhangcheng/temp/d3/san/target/debug/deps/libbitflags-dd68b8369bcd8ff0.rlib" "/Users/zhangcheng/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/libstd-74fa456f.rlib" "/Users/zhangcheng/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/libcollections-74fa456f.rlib" "/Users/zhangcheng/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/librustc_unicode-74fa456f.rlib" "/Users/zhangcheng/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/librand-74fa456f.rlib" "/Users/zhangcheng/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/liballoc-74fa456f.rlib" "/Users/zhangcheng/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/liblibc-74fa456f.rlib" "/Users/zhangcheng/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib/libcore-74fa456f.rlib" "-L" "/Users/zhangcheng/temp/d3/san/target/debug" "-L" "/Users/zhangcheng/temp/d3/san/target/debug/deps" "-L" "/Users/zhangcheng/.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib" "-L" "/Users/zhangcheng/temp/d3/san/.rust/lib/x86_64-apple-darwin" "-L" "/Users/zhangcheng/temp/d3/san/lib/x86_64-apple-darwin" "-l" "freetype" "-l" "c" "-l" "m" "-l" "System" "-l" "pthread" "-l" "c" "-l" "m" "-Wl,-rpath,@loader_path/../../../../../.multirust/toolchains/nightly/lib/rustlib/x86_64-apple-darwin/lib" "-Wl,-rpath,/usr/local/lib/rustlib/x86_64-apple-darwin/lib" "-l" "compiler-rt"
note: ld: warning: directory not found for option '-L/Users/zhangcheng/temp/d3/san/.rust/lib/x86_64-apple-darwin'
ld: warning: directory not found for option '-L/Users/zhangcheng/temp/d3/san/lib/x86_64-apple-darwin'
ld: library not found for -lfreetype
clang: error: linker command failed with exit code 1 (use -v to see invocation)

error: aborting due to previous error
Could not compile `usefree`.

brew install freetype之后,rust编译freetype但错误依旧。

    Updating registry `https://github.com/rust-lang/crates.io-index`
Compiling libc v0.1.8
Compiling bitflags v0.1.1
Compiling pkg-config v0.3.5
Compiling libz-sys v0.1.6
Compiling freetype-sys v0.1.2
Compiling freetype-rs v0.1.0
Compiling usefree v0.0.1 (file:///Users/zhangcheng/temp/d3/san)
error: linking with `cc` failed: exit code: 1

最佳答案

好吧,它构建了一个 Rust 库,它想与 freetype 链接,但您的系统上没有这样的库。因为您使用的是 Mac OS X,所以这并不意外。 Freetype 原生于 Linux 世界,不适用于 mac。

你需要安装 freetype,比如用 brew:

brew install freetype

它将库安装到 /usr/local/lib

如果你使用 brew,它会自动为你的系统添加相应的 pkg-config 配置,因为 freetype-sys(freetype-rs 的依赖项)使用 pkg-config 来发现库,一切都会自动开始工作。

如果您不使用 brew,您很可能不会获得 pkg-config 配置,并且不会自动将必要的标志添加到构建中。坦率地说,我不知道如何在不更改 freetype-sys build 以显式添加 /usr/local/lib (或库安装到的任何路径)的情况下克服这个问题.您可以添加 build script到你的程序,它将 freetype 的路径附加到构建选项,但它不会影响依赖项的编译。它可能有效也可能无效。

关于rust - 为什么使用freetype-rs会报链接错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31249582/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com