- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为 C++ 库 cryptominisat 创建 Rust 绑定(bind)。实际代码有效,但我不确定如何将其与 Cargo 正确打包。
git 仓库看起来像
src/
c++ code here
.gitignore
readme, etc.
我添加了一个 rust
目录,并在其中创建了我的 Cargo 项目,就像这样
rust/
cryptominisat/
Cargo.toml
build.rs
src/
rust code here
src/
c++ code here
.gitignore
readme, etc.
不幸的是,cargo package
似乎不想打包 rust/cryptominisat 目录之外的任何东西,这意味着它不包含实际构建库所需的 C++ 代码。我能做些什么?如果可以避免的话,我不想将整个存储库移动到 rust
目录中,因为那样将无法合并上游。
最佳答案
一般的解决方式:
使用 git 子模块(或发布前运行的脚本)将 C++ 存储库的副本嵌入到 Rust 存储库中(例如,在 rust/cryptominisat/vendor/
中)。在开发期间,您可以使用符号链接(symbolic link)来避免拥有两份 C++ 代码。
使用 build.rs
在构建时下载压缩包/克隆/rsync 代码。您可以将其转储到 Cargo 指定的 OUT_DIR
env var 中,以避免污染用户可见的目录。
使 C++ 代码成为系统级库。 Rust 包不会构建它,但期望它已经安装,并且只搜索它并为它指定链接标志。这就是大多数 *-sys
crate 的工作方式。
关于rust - 如何用Cargo从项目目录外打包源码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38417244/
如何禁用 cargo update或 cargo build试图访问 github.com;但仍然从 crates.io 下载适当的包 我的cargo.toml 中只有一个依赖项 [dependenc
Cargo README陈述如下: Compiling from Source Cargo requires the following tools and packages to build: py
如何禁止 cargo update 或 cargo build 尝试访问 github.com;但仍然从 crates.io 下载合适的包 我的 cargo.toml 中只有一个依赖项 [depend
cargo install 说: error: failed to write /tmp/rustcaq37XH/lib.rmeta: No space left on device (os erro
我不知道为什么这两种情况下的行为相同 最佳答案 找到答案。 cargo init 没有 args 按预期工作:创建文件当前位置。 cargo init 带有 args 的行为类似于 cargo new
我在 VS 代码终端中使用命令 (Cargo run) 运行 Cargo 时遇到了这个问题。我的电脑是 32 位的。 我也尝试使用这个命令分别运行和编译 main.rs 文件,但编译时出现同样的错误。
我编译了 Rust GTK examples这样: $ cargo build --features gtk_3_10 当我尝试运行示例时,出现错误: $ cargo run --bin gtk
我正在尝试使用 CI 构建和测试我的 Rust 代码,我想知道 cargo clippy(可能带有选项)是否涵盖了 cargo check 的所有内容做。我只需要运行 cargo clippy,还是需
我想在我的 Cargo 包裹中捆绑一个纯文本格式的单词列表。我可以编辑 Cargo.toml 来执行此操作吗? 如果我使用 npm,我会将其添加到我的 package.json 中: "files":
现在我有一个包含三个成员的 Cargo 工作区。 [workspace] members = [ "foo", "bar", "baz", ] 如果我在根目录中运行 cargo
我正在学习 Rust 入门,我需要获得 the rand crate在我的系统上。我没有做 Cargo 包装的事情(例如创建 Cargo.toml),因为我对语言感兴趣,而不是包装。 我可以在我的系统
在 cargo check 重新编译许多(但不是全部)依赖项之后立即 cargo build 的可能原因是什么? cargo .toml [package] name = "greeter" vers
cargo 功能允许conditional compilation , 因此最终构建将只包含特定的功能组,最终用户可以过滤这些功能。 现在,根据库 crate 的复杂性,您可能会以形成依赖树的几个功能
所以我有一项任务,要求我编程并创建 cargo ID 并更新每个新订单的状态。 cargo ID:这应该是使用以下简单算法自动生成的唯一编号。 • 使用数字“1939”作为第一个 cargo ID。下
假设我想通过 rust-clippy 对我的所有代码进行 lint。现在,我必须写 #![feature(plugin)] #![plugin(clippy)] 在我的每个来源中。我可以以某种方式配置
集成pom.xml看起来像 org.apache.maven.plugins maven-failsafe-plugin
我正在尝试克隆 SFML github repo在我的本地项目目录中并使用 build.rs Cargo 解决方案构建它,我收到此错误: Could not find Cargo.toml 我没有找到
我创建了一个简单的 hello world 程序: fn main() { println!("Hello, world"); } 当使用 rustc 与 cargo build 编译代码时,
我有一个项目,其中包含一些相关 Assets (Lua 脚本),我需要在运行时找到这些 Assets 。这可能意味着两件事: 在开发过程中(例如cargo run),我想找到它相对于源 当通过 car
我正在尝试使用 cargo 插件在 tomcat8 上部署 war 我的条目如下: org.codehaus.cargo cargo-maven
我是一名优秀的程序员,十分优秀!