doc: update cargo.md #82 e1639d0ce0

This commit is contained in:
jaywcjlove
2022-11-15 12:03:02 +00:00
parent 7d813cc193
commit a25c2c2193
2 changed files with 42 additions and 37 deletions

View File

@ -42,7 +42,7 @@
<p>此快速参考备忘清单 <a href="https://conan.io/">Cargo</a> 提供了编译 <a href="./rust.html">Rust</a> 常用命令和示例</p> <p>此快速参考备忘清单 <a href="https://conan.io/">Cargo</a> 提供了编译 <a href="./rust.html">Rust</a> 常用命令和示例</p>
</div></header><div class="menu-tocs"><div class="menu-btn"><svg aria-hidden="true" fill="currentColor" height="1em" width="1em" viewBox="0 0 16 16" version="1.1" data-view-component="true"> </div></header><div class="menu-tocs"><div class="menu-btn"><svg aria-hidden="true" fill="currentColor" height="1em" width="1em" viewBox="0 0 16 16" version="1.1" data-view-component="true">
<path fill-rule="evenodd" d="M2 4a1 1 0 100-2 1 1 0 000 2zm3.75-1.5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zM3 8a1 1 0 11-2 0 1 1 0 012 0zm-1 6a1 1 0 100-2 1 1 0 000 2z"></path> <path fill-rule="evenodd" d="M2 4a1 1 0 100-2 1 1 0 000 2zm3.75-1.5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zM3 8a1 1 0 11-2 0 1 1 0 012 0zm-1 6a1 1 0 100-2 1 1 0 000 2z"></path>
</svg></div><div class="menu-modal"><a aria-hidden="true" class="leve2 tocs-link" href="#入门">入门</a><a aria-hidden="true" class="leve3 tocs-link" href="#安装升级-rust-和-cargo">安装/升级 Rust 和 Cargo</a><a aria-hidden="true" class="leve3 tocs-link" href="#命令说明">命令说明</a><a aria-hidden="true" class="leve3 tocs-link" href="#切换源">切换源</a><a aria-hidden="true" class="leve3 tocs-link" href="#创建新项目">创建新项目</a><a aria-hidden="true" class="leve3 tocs-link" href="#项目目录">项目目录</a><a aria-hidden="true" class="leve3 tocs-link" href="#编译测试">编译测试</a><a aria-hidden="true" class="leve4 tocs-link" href="#测试">测试</a><a aria-hidden="true" class="leve3 tocs-link" href="#配置目标">配置目标</a><a aria-hidden="true" class="leve3 tocs-link" href="#来源配置">来源配置</a><a aria-hidden="true" class="leve3 tocs-link" href="#配置">配置</a><a aria-hidden="true" class="leve2 tocs-link" href="#包相关命令">包相关命令</a><a aria-hidden="true" class="leve3 tocs-link" href="#initnew">init/new</a><a aria-hidden="true" class="leve3 tocs-link" href="#安装包">安装包</a><a aria-hidden="true" class="leve3 tocs-link" href="#搜索包">搜索包</a><a aria-hidden="true" class="leve3 tocs-link" href="#卸载包">卸载包</a><a aria-hidden="true" class="leve2 tocs-link" href="#发布命令">发布命令</a><a aria-hidden="true" class="leve3 tocs-link" href="#登录">登录</a><a aria-hidden="true" class="leve3 tocs-link" href="#所有者">所有者</a><a aria-hidden="true" class="leve3 tocs-link" href="#打包--发布公共选项">打包 &#x26; 发布公共选项</a><a aria-hidden="true" class="leve3 tocs-link" href="#打包">打包</a><a aria-hidden="true" class="leve3 tocs-link" href="#发布">发布</a><a aria-hidden="true" class="leve3 tocs-link" href="#yank">yank</a><a aria-hidden="true" class="leve2 tocs-link" href="#另见">另见</a></div></div><div class="h1wrap-body"><div class="wrap h2body-exist"><div class="wrap-header h2wrap"><h2 id="入门"><a aria-hidden="true" tabindex="-1" href="#入门"><span class="icon icon-link"></span></a>入门</h2><div class="wrap-body"> </svg></div><div class="menu-modal"><a aria-hidden="true" class="leve2 tocs-link" href="#入门">入门</a><a aria-hidden="true" class="leve3 tocs-link" href="#安装升级-rust-和-cargo">安装/升级 Rust 和 Cargo</a><a aria-hidden="true" class="leve3 tocs-link" href="#命令说明">命令说明</a><a aria-hidden="true" class="leve3 tocs-link" href="#切换源">切换源</a><a aria-hidden="true" class="leve3 tocs-link" href="#创建新项目">创建新项目</a><a aria-hidden="true" class="leve3 tocs-link" href="#来源配置">来源配置</a><a aria-hidden="true" class="leve3 tocs-link" href="#编译测试">编译测试</a><a aria-hidden="true" class="leve4 tocs-link" href="#测试">测试</a><a aria-hidden="true" class="leve3 tocs-link" href="#配置目标">配置目标</a><a aria-hidden="true" class="leve3 tocs-link" href="#项目目录">项目目录</a><a aria-hidden="true" class="leve3 tocs-link" href="#配置">配置</a><a aria-hidden="true" class="leve2 tocs-link" href="#包相关命令">包相关命令</a><a aria-hidden="true" class="leve3 tocs-link" href="#initnew">init/new</a><a aria-hidden="true" class="leve3 tocs-link" href="#安装包">安装包</a><a aria-hidden="true" class="leve3 tocs-link" href="#搜索包">搜索包</a><a aria-hidden="true" class="leve3 tocs-link" href="#卸载包">卸载包</a><a aria-hidden="true" class="leve2 tocs-link" href="#发布命令">发布命令</a><a aria-hidden="true" class="leve3 tocs-link" href="#登录">登录</a><a aria-hidden="true" class="leve3 tocs-link" href="#所有者">所有者</a><a aria-hidden="true" class="leve3 tocs-link" href="#打包--发布公共选项">打包 &#x26; 发布公共选项</a><a aria-hidden="true" class="leve3 tocs-link" href="#打包">打包</a><a aria-hidden="true" class="leve3 tocs-link" href="#发布">发布</a><a aria-hidden="true" class="leve3 tocs-link" href="#yank">yank</a><a aria-hidden="true" class="leve2 tocs-link" href="#另见">另见</a></div></div><div class="h1wrap-body"><div class="wrap h2body-exist"><div class="wrap-header h2wrap"><h2 id="入门"><a aria-hidden="true" tabindex="-1" href="#入门"><span class="icon icon-link"></span></a>入门</h2><div class="wrap-body">
</div></div><div class="h2wrap-body"><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="安装升级-rust-和-cargo"><a aria-hidden="true" tabindex="-1" href="#安装升级-rust-和-cargo"><span class="icon icon-link"></span></a>安装/升级 Rust 和 Cargo</h3><div class="wrap-body"> </div></div><div class="h2wrap-body"><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="安装升级-rust-和-cargo"><a aria-hidden="true" tabindex="-1" href="#安装升级-rust-和-cargo"><span class="icon icon-link"></span></a>安装/升级 Rust 和 Cargo</h3><div class="wrap-body">
<pre class="wrap-text"><code class="language-bash code-highlight"><span class="code-line">$ <span class="token function">curl</span> <span class="token parameter variable">-sSf</span> https://static.rust-lang.org/rustup.sh <span class="token operator">|</span> <span class="token function">sh</span> <pre class="wrap-text"><code class="language-bash code-highlight"><span class="code-line">$ <span class="token function">curl</span> <span class="token parameter variable">-sSf</span> https://static.rust-lang.org/rustup.sh <span class="token operator">|</span> <span class="token function">sh</span>
</span></code></pre> </span></code></pre>
@ -164,22 +164,25 @@
</span><span class="code-line"> Running <span class="token variable"><span class="token variable">`</span>target/hello_world<span class="token variable">`</span></span> </span><span class="code-line"> Running <span class="token variable"><span class="token variable">`</span>target/hello_world<span class="token variable">`</span></span>
</span><span class="code-line">Hello, world<span class="token operator">!</span> </span><span class="code-line">Hello, world<span class="token operator">!</span>
</span></code></pre> </span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="项目目录"><a aria-hidden="true" tabindex="-1" href="#项目目录"><span class="icon icon-link"></span></a>项目目录</h3><div class="wrap-body"> </div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="来源配置"><a aria-hidden="true" tabindex="-1" href="#来源配置"><span class="icon icon-link"></span></a>来源配置</h3><div class="wrap-body">
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token builtin class-name">.</span> <pre class="wrap-text "><code class="language-toml code-highlight"><span class="code-line"><span class="token comment"># `source` 表下,就是存储有关要更换的来源名称</span>
</span><span class="code-line">├── Cargo.lock </span><span class="code-line"><span class="token punctuation">[</span><span class="token table class-name">source</span><span class="token punctuation">]</span>
</span><span class="code-line">├── Cargo.toml </span><span class="code-line">
</span><span class="code-line">├── benches <span class="token comment"># 基准目录</span> </span><span class="code-line"><span class="token comment"># 在`source` 表格之下的,可为一定数量的有关来源名称. 示例下面就,定义了一个新源, 叫 `my-awesome-source`,其内容来自本地,`vendor`目录 ,其相对于包含 `.cargo/config` 文件的目录</span>
</span><span class="code-line">│ └── large-input.rs </span><span class="code-line"><span class="token punctuation">[</span><span class="token table class-name">source.my-awesome-source</span><span class="token punctuation">]</span>
</span><span class="code-line">├── examples <span class="token comment"># 示例</span> </span><span class="code-line"><span class="token key property">directory</span> <span class="token punctuation">=</span> <span class="token string">"vendor"</span>
</span><span class="code-line">│ └── simple.rs </span><span class="code-line">
</span><span class="code-line">├── src <span class="token comment"># 源代码</span> </span><span class="code-line"><span class="token comment"># Git sources 也指定一个 branch/tag/rev</span>
</span><span class="code-line">│ ├── bin </span><span class="code-line"><span class="token key property">git</span> <span class="token punctuation">=</span> <span class="token string">"https://example.com/path/to/repo"</span>
</span><span class="code-line">│ │ └── another_executable.rs </span><span class="code-line"><span class="token comment"># branch = "master"</span>
</span><span class="code-line">│ ├── lib.rs <span class="token comment"># 默认库</span> </span><span class="code-line"><span class="token comment"># tag = "v1.0.1"</span>
</span><span class="code-line">│ └── main.rs <span class="token comment"># 入口文件</span> </span><span class="code-line"><span class="token comment"># rev = "313f44e8"</span>
</span><span class="code-line">└── tests <span class="token comment"># 集成测试</span> </span><span class="code-line">
</span><span class="code-line"> └── some-integration-tests.rs </span><span class="code-line"><span class="token comment"># crates.io 默认源 在"crates-io"名称下,且在这里我们使用 `replace-with` 字段指明 默认源更换成"my-awesome-source"源</span>
</span><span class="code-line"><span class="token punctuation">[</span><span class="token table class-name">source.crates-io</span><span class="token punctuation">]</span>
</span><span class="code-line"><span class="token key property">replace-with</span> <span class="token punctuation">=</span> <span class="token string">"my-awesome-source"</span>
</span></code></pre> </span></code></pre>
<!--rehype:className=wrap-text -->
</div></div></div><div class="wrap h3body-exist"><div class="wrap-header h3wrap"><h3 id="编译测试"><a aria-hidden="true" tabindex="-1" href="#编译测试"><span class="icon icon-link"></span></a>编译测试</h3><div class="wrap-body"> </div></div></div><div class="wrap h3body-exist"><div class="wrap-header h3wrap"><h3 id="编译测试"><a aria-hidden="true" tabindex="-1" href="#编译测试"><span class="icon icon-link"></span></a>编译测试</h3><div class="wrap-body">
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token comment"># 编译输出二进制文件,放入 `target/debug` 目录</span> <pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token comment"># 编译输出二进制文件,放入 `target/debug` 目录</span>
</span><span class="code-line">$ <span class="token function">cargo</span> build </span><span class="code-line">$ <span class="token function">cargo</span> build
@ -188,14 +191,16 @@
</span><span class="code-line">$ <span class="token function">cargo</span> run <span class="token comment"># 编译并运行</span> </span><span class="code-line">$ <span class="token function">cargo</span> run <span class="token comment"># 编译并运行</span>
</span></code></pre> </span></code></pre>
<h4 id="测试"><a aria-hidden="true" tabindex="-1" href="#测试"><span class="icon icon-link"></span></a>测试</h4> <h4 id="测试"><a aria-hidden="true" tabindex="-1" href="#测试"><span class="icon icon-link"></span></a>测试</h4>
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">$ <span class="token function">cargo</span> <span class="token builtin class-name">test</span> <span class="token comment"># 运行你的所有测试</span> <pre class="wrap-text"><code class="language-bash code-highlight"><span class="code-line">$ <span class="token function">cargo</span> <span class="token builtin class-name">test</span> <span class="token comment"># 运行你的所有测试</span>
</span><span class="code-line"><span class="token comment"># 指定函数过滤器</span> </span><span class="code-line"><span class="token comment"># 指定函数过滤器</span>
</span><span class="code-line">$ <span class="token function">cargo</span> <span class="token builtin class-name">test</span> test_foo <span class="token comment"># 开头是 test_foo 的函数都会运行,例如(test_foo_bar)</span> </span><span class="code-line">$ <span class="token function">cargo</span> <span class="token builtin class-name">test</span> test_foo <span class="token comment"># 开头是 test_foo 的函数都会运行,例如(test_foo_bar)</span>
</span><span class="code-line"><span class="token comment"># 指定特定模块中的测试函数(通常可以简写 cargo test foo::bar::tests::test_foo)</span> </span><span class="code-line"><span class="token comment"># 指定特定模块中的测试函数(通常可以简写 cargo test foo::bar::tests::test_foo)</span>
</span><span class="code-line"><span class="token function">cargo</span> <span class="token builtin class-name">test</span> <span class="token parameter variable">--package</span> rustt <span class="token parameter variable">--lib</span> -- foo::bar::tests::test_foo <span class="token parameter variable">--exact</span> <span class="token parameter variable">--nocapture</span> </span><span class="code-line">$ <span class="token function">cargo</span> <span class="token builtin class-name">test</span> <span class="token parameter variable">--package</span> rustt <span class="token parameter variable">--lib</span> -- foo::bar::tests::test_foo <span class="token parameter variable">--exact</span> <span class="token parameter variable">--nocapture</span>
</span><span class="code-line">
</span><span class="code-line"><span class="token comment"># 指定特定测试的模块(通常可以简写 cargo test foo::bar::tests)</span> </span><span class="code-line"><span class="token comment"># 指定特定测试的模块(通常可以简写 cargo test foo::bar::tests)</span>
</span><span class="code-line"><span class="token function">cargo</span> <span class="token builtin class-name">test</span> <span class="token parameter variable">--package</span> rustt <span class="token parameter variable">--lib</span> -- foo::bar::tests <span class="token parameter variable">--nocapture</span> </span><span class="code-line">$ <span class="token function">cargo</span> <span class="token builtin class-name">test</span> <span class="token parameter variable">--package</span> rustt <span class="token parameter variable">--lib</span> -- foo::bar::tests <span class="token parameter variable">--nocapture</span>
</span></code></pre> </span></code></pre>
<!--rehype:className=wrap-text-->
</div></div></div><div class="wrap h3body-not-exist row-span-2"><div class="wrap-header h3wrap"><h3 id="配置目标"><a aria-hidden="true" tabindex="-1" href="#配置目标"><span class="icon icon-link"></span></a>配置目标</h3><div class="wrap-body"> </div></div></div><div class="wrap h3body-not-exist row-span-2"><div class="wrap-header h3wrap"><h3 id="配置目标"><a aria-hidden="true" tabindex="-1" href="#配置目标"><span class="icon icon-link"></span></a>配置目标</h3><div class="wrap-body">
<!--rehype:wrap-class=row-span-2--> <!--rehype:wrap-class=row-span-2-->
<pre class="wrap-text"><code class="language-toml code-highlight"><span class="code-line"><span class="token punctuation">[</span><span class="token table class-name">package</span><span class="token punctuation">]</span> <pre class="wrap-text"><code class="language-toml code-highlight"><span class="code-line"><span class="token punctuation">[</span><span class="token table class-name">package</span><span class="token punctuation">]</span>
@ -223,25 +228,22 @@
</span><span class="code-line"><span class="token key property">edition</span> <span class="token punctuation">=</span> <span class="token string">'2015'</span> </span><span class="code-line"><span class="token key property">edition</span> <span class="token punctuation">=</span> <span class="token string">'2015'</span>
</span></code></pre> </span></code></pre>
<!--rehype:className=wrap-text--> <!--rehype:className=wrap-text-->
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="来源配置"><a aria-hidden="true" tabindex="-1" href="#来源配置"><span class="icon icon-link"></span></a>来源配置</h3><div class="wrap-body"> </div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="项目目录"><a aria-hidden="true" tabindex="-1" href="#项目目录"><span class="icon icon-link"></span></a>项目目录</h3><div class="wrap-body">
<pre class="wrap-text "><code class="language-toml code-highlight"><span class="code-line"><span class="token comment"># `source` 表下,就是存储有关要更换的来源名称</span> <pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token builtin class-name">.</span>
</span><span class="code-line"><span class="token punctuation">[</span><span class="token table class-name">source</span><span class="token punctuation">]</span> </span><span class="code-line">├── Cargo.lock
</span><span class="code-line"> </span><span class="code-line">├── Cargo.toml
</span><span class="code-line"><span class="token comment"># 在`source` 表格之下的,可为一定数量的有关来源名称. 示例下面就,定义了一个新源, 叫 `my-awesome-source`,其内容来自本地,`vendor`目录 ,其相对于包含 `.cargo/config` 文件的目录</span> </span><span class="code-line">├── benches <span class="token comment"># 基准目录</span>
</span><span class="code-line"><span class="token punctuation">[</span><span class="token table class-name">source.my-awesome-source</span><span class="token punctuation">]</span> </span><span class="code-line">│ └── large-input.rs
</span><span class="code-line"><span class="token key property">directory</span> <span class="token punctuation">=</span> <span class="token string">"vendor"</span> </span><span class="code-line">├── examples <span class="token comment"># 示例</span>
</span><span class="code-line"> </span><span class="code-line">│ └── simple.rs
</span><span class="code-line"><span class="token comment"># Git sources 也指定一个 branch/tag/rev</span> </span><span class="code-line">├── src <span class="token comment"># 源代码</span>
</span><span class="code-line"><span class="token key property">git</span> <span class="token punctuation">=</span> <span class="token string">"https://example.com/path/to/repo"</span> </span><span class="code-line">│ ├── bin
</span><span class="code-line"><span class="token comment"># branch = "master"</span> </span><span class="code-line">│ │ └── another_executable.rs
</span><span class="code-line"><span class="token comment"># tag = "v1.0.1"</span> </span><span class="code-line">│ ├── lib.rs <span class="token comment"># 默认库</span>
</span><span class="code-line"><span class="token comment"># rev = "313f44e8"</span> </span><span class="code-line">│ └── main.rs <span class="token comment"># 入口文件</span>
</span><span class="code-line"> </span><span class="code-line">└── tests <span class="token comment"># 集成测试</span>
</span><span class="code-line"><span class="token comment"># crates.io 默认源 在"crates-io"名称下,且在这里我们使用 `replace-with` 字段指明 默认源更换成"my-awesome-source"源</span> </span><span class="code-line"> └── some-integration-tests.rs
</span><span class="code-line"><span class="token punctuation">[</span><span class="token table class-name">source.crates-io</span><span class="token punctuation">]</span>
</span><span class="code-line"><span class="token key property">replace-with</span> <span class="token punctuation">=</span> <span class="token string">"my-awesome-source"</span>
</span></code></pre> </span></code></pre>
<!--rehype:className=wrap-text -->
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="配置"><a aria-hidden="true" tabindex="-1" href="#配置"><span class="icon icon-link"></span></a>配置</h3><div class="wrap-body"> </div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="配置"><a aria-hidden="true" tabindex="-1" href="#配置"><span class="icon icon-link"></span></a>配置</h3><div class="wrap-body">
<pre class="wrap-text "><code class="language-toml code-highlight"><span class="code-line"><span class="token comment"># 每个源都有自己的表格,名称即是表名</span> <pre class="wrap-text "><code class="language-toml code-highlight"><span class="code-line"><span class="token comment"># 每个源都有自己的表格,名称即是表名</span>
</span><span class="code-line"><span class="token punctuation">[</span><span class="token table class-name">source.the-source-name</span><span class="token punctuation">]</span> </span><span class="code-line"><span class="token punctuation">[</span><span class="token table class-name">source.the-source-name</span><span class="token punctuation">]</span>

View File

@ -463,6 +463,9 @@
<a href="https://github.com/JetSquirrel" title="JetSquirrel"> <a href="https://github.com/JetSquirrel" title="JetSquirrel">
<img src="https://avatars.githubusercontent.com/u/20291255?v=4" width="42;" alt="JetSquirrel"> <img src="https://avatars.githubusercontent.com/u/20291255?v=4" width="42;" alt="JetSquirrel">
</a> </a>
<a href="https://github.com/HanaNoryu" title="Noryu">
<img src="https://avatars.githubusercontent.com/u/109856546?v=4" width="42;" alt="Noryu">
</a>
<a href="https://github.com/gaoxiaoduan" title="coderduan"> <a href="https://github.com/gaoxiaoduan" title="coderduan">
<img src="https://avatars.githubusercontent.com/u/69953511?v=4" width="42;" alt="coderduan"> <img src="https://avatars.githubusercontent.com/u/69953511?v=4" width="42;" alt="coderduan">
</a> </a>