Невозможно связать программу, используя cairo-rs: «сбой соединения с` cc` »и« библиотека не найдена для -lgobject-2.0 » - PullRequest
0 голосов
/ 26 мая 2018

Я следую этому уроку , чтобы использовать cairo-rs для рисования чего-либо на изображении.Когда я запускаю свой код, я получаю очень длинную ошибку.Кажется, важными битами являются:

linking with "cc" failed: exit code: 1

и

ld: library not found for -lgobject-2.0 
clang: error: linker command failed with exit code 1

Я установил Cairo через MacPorts, так что это не должно быть проблемой.Я скопировал файл Cargo.toml из учебника, за исключением обновленных пакетов:

[dependencies]
png = "0.12.0"
cairo-rs = {version = "0.4.1", features = ["png"]}

Я также пробовал использовать версии, перечисленные в учебнике, но получаю ту же ошибку.

Rust Issue 18610 , похоже, имеет аналогичную ошибку и предлагает установить libc-dev.Я не знаю, что это такое или почему это могло бы что-то исправить.

Я где-то видел, что это может быть конфликт имен, поэтому я изменил название своего проекта, чтобы не конфликтовать, но это не так.Т помочь.

Подробности

  • Я нахожусь на стабильной Rust, я даже переустанавливал ее.
  • MacOS High Sierra, версия 10.13.3 (17D47)

Полная ошибка

error: linking with `cc` failed: exit code: 1
  |
  = note: "cc" "-m64" "-L" "/Users/davidsullivan/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/using_cairo-0c2716712c3e8ee6.138pesuvab4dy035.rcgu.o" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/using_cairo-0c2716712c3e8ee6.15kq92zzbmxot4k9.rcgu.o" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/using_cairo-0c2716712c3e8ee6.16u6js6g0l3k1ic6.rcgu.o" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/using_cairo-0c2716712c3e8ee6.18w6p8ltrgxnoslg.rcgu.o" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/using_cairo-0c2716712c3e8ee6.1kduva7sc7em934m.rcgu.o" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/using_cairo-0c2716712c3e8ee6.1vut2eft6nlujjxr.rcgu.o" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/using_cairo-0c2716712c3e8ee6.1y16o1qfye96o7m0.rcgu.o" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/using_cairo-0c2716712c3e8ee6.1zeawhkbeobww1zn.rcgu.o" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/using_cairo-0c2716712c3e8ee6.2f1hnlzab9mh7h5g.rcgu.o" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/using_cairo-0c2716712c3e8ee6.2jqywn86b2gsqohu.rcgu.o" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/using_cairo-0c2716712c3e8ee6.2qhkzqx5zqexj20y.rcgu.o" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/using_cairo-0c2716712c3e8ee6.3171x0bwu82dptu7.rcgu.o" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/using_cairo-0c2716712c3e8ee6.3bupun14v400xrjn.rcgu.o" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/using_cairo-0c2716712c3e8ee6.3cx7oljifvb206q7.rcgu.o" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/using_cairo-0c2716712c3e8ee6.3gri9e66l1z4vy9t.rcgu.o" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/using_cairo-0c2716712c3e8ee6.3rngp6bm2u2q5z0y.rcgu.o" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/using_cairo-0c2716712c3e8ee6.45nf4z58qqykpcpi.rcgu.o" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/using_cairo-0c2716712c3e8ee6.49a7n47po4ttqjl7.rcgu.o" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/using_cairo-0c2716712c3e8ee6.49lx1q7cxvpykyv0.rcgu.o" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/using_cairo-0c2716712c3e8ee6.4ezmh1vbs95c5ack.rcgu.o" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/using_cairo-0c2716712c3e8ee6.4pd8ez09p90ytr94.rcgu.o" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/using_cairo-0c2716712c3e8ee6.4xq48u46a1pwiqn7.rcgu.o" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/using_cairo-0c2716712c3e8ee6.4yh8x2b62dcih00t.rcgu.o" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/using_cairo-0c2716712c3e8ee6.5adk9fi3m3eo99v4.rcgu.o" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/using_cairo-0c2716712c3e8ee6.8xzrsc1ux72v29j.rcgu.o" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/using_cairo-0c2716712c3e8ee6.9elsx31vb4it187.rcgu.o" "-o" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/using_cairo-0c2716712c3e8ee6" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/using_cairo-0c2716712c3e8ee6.crate.allocator.rcgu.o" "-Wl,-dead_strip" "-nodefaultlibs" "-L" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps" "-L" "/Users/davidsullivan/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/libcairo-02af06cb5f843585.rlib" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/libglib-9b2eaf5a04b666f1.rlib" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/libgobject_sys-dffb3413958eb3eb.rlib" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/libglib_sys-d80b4885044879d2.rlib" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/liblazy_static-ecb17a6c9c859f76.rlib" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/libbitflags-bcdfdc861d8d5eb6.rlib" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/libc_vec-21d683c350f5dff1.rlib" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/libcairo_sys-778a9ff4a1493728.rlib" "/Users/davidsullivan/Desktop/Programing/Rust/graphics/using_cairo/target/debug/deps/liblibc-83288e07e4750a07.rlib" "/Users/davidsullivan/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libstd-844f948b7f44d010.rlib" "/Users/davidsullivan/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-1d305abaf51b5849.rlib" "/Users/davidsullivan/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/liballoc_jemalloc-480b35384c455cd2.rlib" "/Users/davidsullivan/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libunwind-579e24175a3d2d71.rlib" "/Users/davidsullivan/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/liballoc_system-2600026bf2ff8eb5.rlib" "/Users/davidsullivan/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/liblibc-7bb0ccf08d309fa4.rlib" "/Users/davidsullivan/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/liballoc-d90d94404b7883e9.rlib" "/Users/davidsullivan/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libstd_unicode-6be41d1b0b4956a1.rlib" "/Users/davidsullivan/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libcore-788f4f091335111f.rlib" "/Users/davidsullivan/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-e26406cc89e6bd21.rlib" "-l" "gobject-2.0" "-l" "glib-2.0" "-l" "gobject-2.0" "-l" "cairo" "-l" "System" "-l" "resolv" "-l" "pthread" "-l" "c" "-l" "m"
  = note: ld: library not found for -lgobject-2.0
          clang: error: linker command failed with exit code 1 (use -v to see invocation)

Cargo.toml

[package]
name = "using_cairo"
version = "0.1.0"
authors = ["davidsullivan <touisbetterthanpi@gmail.com>"]

[dependencies]
png = "0.12.0"
cairo-rs = {version = "0.4.1", features = ["png"]}

main.rs

extern crate cairo;

use cairo::{Context, Format, ImageSurface};
use std::fs::File;

fn main() {
    let surface = ImageSurface::create(Format::ARgb32, 600, 600).expect("could not create surface");
    let context = Context::new(&surface);

    context.set_source_rgb(1.0, 0.0, 0.0);
    context.paint();

    let mut file = File::create("output.png").expect("Could not create file");

    surface
        .write_to_png(&mut file)
        .expect("could not write to file");
}

1 Ответ

0 голосов
/ 26 мая 2018

Вам необходимо установить соответствующие библиотеки разработки glib и cairo.

Если ваша ОС связана с Debian, введите apt install libglib2.0-dev.

Если вы используете macOS и Homebrew, введите brew install glib, затем brew install cairo.

...