标签: rust-crates

如何使用本地未发布的箱子?

我做了一个图书馆:

cargo new my_lib
Run Code Online (Sandbox Code Playgroud)

我想在另一个程序中使用该库:

cargo new my_program --bin
Run Code Online (Sandbox Code Playgroud)
extern crate my_lib;

fn main {
    println!("Hello, World!");
}
Run Code Online (Sandbox Code Playgroud)

我需要做些什么才能让它发挥作用?

它们不在同一个项目文件夹中.

.
??? my_lib
??? my_program
Run Code Online (Sandbox Code Playgroud)

希望这是有道理的.

我认为我可以按照货物指南覆盖路径,但它说明了

您无法使用此功能告诉Cargo如何查找本地未发布的板条箱.

这是使用最新稳定版本的Rust(1.3).

multifile rust rust-crates

77
推荐指数
1
解决办法
2万
查看次数

如何在一个箱子中公开一个Rust项目,但在它之外私有?

我有一个包含大量代码的包,所以我将它分成多个文件/模块.但是,有些模块有内部不安全的东西(例如原始指针),我需要向不同的模块公开,但我不想向我的箱子的用户公开.我怎样才能做到这一点?

我能想到的唯一方法就是让我的箱子只是一个大模块,但是除了这个似乎有点hacky的解决方案之外,没有办法将它分成不同的文件.

通常当我遇到一个现实世界的问题时,Rust文档中的简单示例没有充分解释我只是复制一个流行的真实世界的箱子,例如git2-rs,但这似乎只是有效地使一切都公开,包括原始指针.

module public rust rust-crates

28
推荐指数
1
解决办法
7063
查看次数

通过货物安装箱子时出错:指定的包没有二进制文件

我正在尝试使用Cargo在我的系统(Arch Linux)上安装Rust crate.我可以搜索板条箱并找到我需要的东西,例如:

 $ cargo search curl | head -n3
    Updating registry `https://github.com/rust-lang/crates.io-index`
curl (0.3.0)             Rust bindings to libcurl for making HTTP requests
curl-sys (0.2.0)         Native bindings to the libcurl library
Run Code Online (Sandbox Code Playgroud)

当我尝试安装它时,我收到以下错误:

 $ cargo install curl
    Updating registry `https://github.com/rust-lang/crates.io-index`
error: specified package has no binaries
Run Code Online (Sandbox Code Playgroud)

这是什么意思?我是否必须先从源代码构建它?如果Cargo没有安装它,它有什么意义?

 $ uname -a
Linux 4.6.1-2-ARCH #1 SMP PREEMPT Thu Jun 2 15:46:17 CEST 2016 x86_64 GNU/Linux
 $ rustc --version
rustc 1.9.0
 $ cargo --version
cargo 0.10.0 (10ddd7d 2016-04-08)
Run Code Online (Sandbox Code Playgroud)

installation rust rust-crates rust-cargo

26
推荐指数
1
解决办法
7881
查看次数

Rust无法找到箱子

我正在尝试在Rust中创建一个模块,然后从另一个文件中使用它.这是我的文件结构:

matthias@X1:~/projects/bitter-oyster$ tree
.
??? Cargo.lock
??? Cargo.toml
??? Readme.md
??? src
?   ??? liblib.rlib
?   ??? lib.rs
?   ??? main.rs
?   ??? main.rs~
?   ??? plot
?       ??? line.rs
?       ??? mod.rs
??? target
    ??? debug
        ??? bitter_oyster.d
        ??? build
        ??? deps
        ??? examples
        ??? libbitter_oyster.rlib
        ??? native

8 directories, 11 files
Run Code Online (Sandbox Code Playgroud)

这是Cargo.toml:

[package]
name = "bitter-oyster"
version = "0.1.0"
authors = ["matthias"]

[dependencies]
Run Code Online (Sandbox Code Playgroud)

这是主要的:

extern crate plot;

fn main() {
    println!("----");
    plot::line::test();
}
Run Code Online (Sandbox Code Playgroud)

这是lib.rs:

mod plot;
Run Code Online (Sandbox Code Playgroud)

这是情节/模型

mod …
Run Code Online (Sandbox Code Playgroud)

rust rust-crates

20
推荐指数
3
解决办法
2万
查看次数

如何清除货物缓存?

当我运行时cargo build,各种库存储在文件夹中/usr/local/lib/rustlib/.

清除这些库的正确方法是什么?我可以rm手动这些文件,但这是正确的做法吗?我注意到这/usr/local/lib/rustlib/manifest是一个包含所有库的填充文件路径列表的文件,因此如果我手动删除这些文件可能会破坏某些内容.

rust rust-crates rust-cargo

17
推荐指数
2
解决办法
8695
查看次数

如何链接本地Rust库?(类似于npm链接)

在节点中开发库时,如果您希望针对仅存在于本地的库进行开发,则npm publish可以使用npm link /path/to/other/node_library.

什么相当于Rust?如何创建另一个链接到bar库的foo可执行文件,而不首先将bar库推送到git远程?

官方生锈教程展示了如何使用raw进行此操作rustc,如何才能完成Cargo.toml

(货物文档向您展示了如何构建lib,但现在如何链接到没有远程存储库的库.)

git node.js rust rust-crates rust-cargo

16
推荐指数
2
解决办法
3711
查看次数

如何在不发布到crates.io的情况下在Rust项目之间共享公共代码?

对于这个问题可能没有一个好的答案,但我有代码,我想在两个不同的Rust项目之间共享而不将crate发布到crates.io.

代码是专有的,我不想把它放到野外.

rust rust-crates

13
推荐指数
1
解决办法
567
查看次数

当 crate 既是 Rust 库又是可执行文件时,应该提交 Cargo.lock 吗?

我读过https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html

如果我理解正确,当我将 Cargo.lock 提交到我的 crate(它既是一个库又是一个可执行文件)的存储库中,并且将它发布到 crates.io 时,下游 crates 将忽略它并构建它自己的 snap,对吧?

rust rust-crates rust-cargo

12
推荐指数
2
解决办法
1547
查看次数

如何在另一个箱子中使用宏?

我正在努力从我的生锈库中制作宏以供其他生锈项目使用.

这是我现在如何尝试这项工作的一个例子.

lib.rs:

#![crate_name = "dsp"]
#![feature(macro_rules, phase)]
#![phase(syntax)]

pub mod macros;
Run Code Online (Sandbox Code Playgroud)

macros.rs:

#![macro_escape]

#[macro_export]
macro_rules! macro(...)
Run Code Online (Sandbox Code Playgroud)

other_project.rs:

#![feature(phase, macro_rules)]
#![phase(syntax, plugin, link)] extern crate dsp;

macro!(...) // error: macro undefined: 'macro!'
Run Code Online (Sandbox Code Playgroud)

我是在正确的轨道上吗?我一直在尝试使用std :: macros作为参考,但我似乎没有太多运气.我有什么明显的遗失吗?

macros rust rust-crates

11
推荐指数
1
解决办法
3660
查看次数

Rust cargo.toml 为 C 链接器和编译器指定自定义路径

由于我对货物设置和大量文档的无知,我遇到了一些问题。

cargo.toml 文件是当前的:

[package]
name = "hello"
version = "0.1.0"
authors = ["PC4\\Author"]

[dependencies]
sdl2 = { version = "0.34.1", features = ["bundled", "static-link"] }
Run Code Online (Sandbox Code Playgroud)

SDL2 依赖项已编译,但实际上使用的是 Visual Studio。我真正想做的是在编译 crate 依赖项时使用另一个文件夹中的自定义编译器。

rust sdl-2 rust-crates rust-cargo

11
推荐指数
1
解决办法
2006
查看次数

标签 统计

rust ×10

rust-crates ×10

rust-cargo ×5

git ×1

installation ×1

macros ×1

module ×1

multifile ×1

node.js ×1

public ×1

sdl-2 ×1