我正在按照本教程使用 cairo-rs 为图像绘制一些内容。当我运行我的代码时,我得到一个很长的错误。重要的部分似乎是:
linking with "cc" failed: exit code: 1
Run Code Online (Sandbox Code Playgroud)
和
ld: library not found for -lgobject-2.0
clang: error: linker command failed with exit code 1
Run Code Online (Sandbox Code Playgroud)
我通过 MacPorts 安装了 Cairo,所以这应该不是问题。我从教程中复制了 Cargo.toml 文件,除了最新的包:
[dependencies]
png = "0.12.0"
cairo-rs = {version = "0.4.1", features = ["png"]}
Run Code Online (Sandbox Code Playgroud)
我也尝试了教程中列出的版本,但我得到了同样的错误。
Rust 问题 18610似乎有类似的错误,并建议安装libc-dev. 我不知道那是什么或为什么它会解决任何问题。
我在某处看到它可能是命名冲突,所以我更改了我的项目名称以免冲突,但它没有帮助。
[dependencies]
png = "0.12.0"
cairo-rs = {version = "0.4.1", features = ["png"]}
Run Code Online (Sandbox Code Playgroud)
[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"]}
Run Code Online (Sandbox Code Playgroud)
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");
}
Run Code Online (Sandbox Code Playgroud)
您需要安装适当的开发库glib和cairo。
如果您的操作系统与 Debian 相关,请键入apt install libglib2.0-dev.
如果您使用的是 macOS 和 Homebrew,请输入brew install glibthen brew install cairo。
| 归档时间: |
|
| 查看次数: |
2016 次 |
| 最近记录: |