Rust 源代码组织,使用配套的 Cargo 工具,其功能强大,程序员可摆脱 C/C++ 中需要自行维护 make、cmake 之类配置的工作量。

初始化一个项目:

cargo new --bin hello_world

指定 --bin 选项代表创建的是一个直接可执行的二进制项目,否则会生成一个库项目。

执行 cargo run && cargo run --release 之后,项目目录结构如下:

<fh@z:~/projects/hello_world>
zsh/ (git)-[master]-% tree
.
├── Cargo.lock
├── Cargo.toml
├── src
│   └── main.rs
└── target
├── debug
│   ├── build
│   ├── deps
│   │   └── hello_world-f745b285e01df5ca
│   ├── examples
│   ├── hello_world
│   ├── hello_world.d
│   ├── incremental
│   └── native
└── release
├── build
├── deps
│   └── hello_world-7399f171987fdf9d
├── examples
├── hello_world
├── hello_world.d
├── incremental
└── native

生成的二进制文件位于项目路径下的 target/debug 或 target/release 子目录中,--release 指生成编译优化版的二进制文件,类似于 C 语言开启 -O2 优化选项。

其中 Cargo.toml 是 Cargo 用来管理项目结构的配置文件,其初始内容如下:

<fh@z:~/projects/hello_world>
zsh/ (git)-[master]-% cat Cargo.toml
[package]
name = "hello_world"
version = "0.1.0"
authors = ["kt <kt@kissos.org>"] [dependencies]

____

注:rust 生成的最终可执行文件,都是无外部依赖的静态编译结果。

Rust <0>:源代码组织,Cargo 入门的更多相关文章

  1. 如何编译Apache Hadoop2.6.0源代码

    如何编译Apache Hadoop2.6.0源代码 1.安装CentOS 我使用的是CentOS6.5,下载地址是http://mirror.neu.edu.cn/centos/6.5/isos/x8 ...

  2. Android 6.0 源代码编译实践

    http://www.judymax.com/archives/1087 Android 6.0 源代码编译实践 https://mirrors.tuna.tsinghua.edu.cn/help/A ...

  3. qemu-kvm-1.1.0源代码中关于迁移的代码分析

    这篇文档基于qemu-kvm-1.1.0源代码进行分析. 首先,源代码中的hmp-commands.hx文件里有下面内容: { .name = "migrate",/* 在moni ...

  4. Android(Lollipop/5.0) Material Design(二) 入门指南

    Material Design系列 Android(Lollipop/5.0)Material Design(一) 简介 Android(Lollipop/5.0)Material Design(二) ...

  5. net core体系-web应用程序-4net core2.0大白话带你入门-1目录

    asp.net core2.0大白话带你入门 本系列包括: 1.新建asp.net core项目2.web项目目录解读3.配置访问地址4.环境变量详解5.配置文件6.日志7.DI容器8.服务的生命周期 ...

  6. WmS具体解释(二)之怎样理解Window和窗体的关系?基于Android7.0源代码

    上篇博客(WmS具体解释(一)之token究竟是什么?基于Android7.0源代码)中我们简要介绍了token的作用,这里涉及到的概念非常多,当中出现频率最高的要数Window和窗体这一对搭档了,那 ...

  7. .NET Framework 4.0源代码

    原文出处:http://blogs.microsoft.co.il/blogs/arik/archive/2010/07/12/step-into-net-framework-4-0-source-c ...

  8. Microsoft Dynamics CRM 4.0导入组织(Import Organization)时间过长的原因总结

    952934    How to move the Microsoft Dynamics CRM 4.0 deployment http://support.microsoft.com/default ...

  9. Android 5.0 源代码结构

    本节书摘来自异步社区<深入理解Android 5 源代码>一书中的第2章,第2.2节分析Android源代码结构,作者 李骏. 网址:https://yq.aliyun.com/artic ...

随机推荐

  1. Cocos2d 之FlyBird开发---GameScore类

    |   版权声明:本文为博主原创文章,未经博主允许不得转载. 这个类主要实现的是,显示历次成绩中的最好成绩.当然我写的这个很简洁,还可以写的更加的丰富.下面贴上代码: GameScore.h #ifn ...

  2. luoguP2184 贪婪大陆 题解(树状数组)

    P2184 贪婪大陆  题目 其实很容易理解就是询问一段区间内有多少段不同的区间 然后再仔细思索一下会发现: 1.只要一个区间的开头在一个节点i的左边,那么这个区间包含在区间1~i中. 2.只要一个区 ...

  3. web编程非常实用的在线工具大全---转载

    代码对比/归并: http://www.matools.com/compare 正则表达式: http://www.matools.com/regex js/css压缩: http://www.mat ...

  4. 搭建 webpack、react 开发环境(三)

    配置 react-router-dom   我们开发一个 React 工程肯定不是一两个“页面”就可以满足需求的,所以我们需要一个在多个“页面”中跳转的功能,在使用 React 构建的单页面应用中,要 ...

  5. HTML页面仿iphone数字角标

    做仿iphone样式的数字角标,用简单的css来实现 <html><head><title>角标数字</title><style type=&qu ...

  6. openssl部分解读

    前言 openssl是个开源的加密库.可以对文件进行加密解密. 小知识 术语: 单词:   Encryption  加密   Decryption   解密   ssl 安全socket层 tsl 最 ...

  7. eclipse调试代码无法查看jdk变量解决方法

    1.无法查看jdk变量原因 oracle在公司在编译jdk的时候,把debug给关闭了,现在需要我们自己重新打包编译一次 2.eclipse创建一个普通java项目,取名叫jdk 3.导入jdk源码, ...

  8. input file 上传文件类型控制

    文件类型 accept *.3gpp audio/3gpp, video/3gpp.ac3 audio/ac3.asf allpication/vnd.ms-asf.au audio/basic.cs ...

  9. JSON和fastjson

    一.JSON 语法规则: 数据在名称/值对中 数据由逗号分隔 花括号保存对象 方括号保存数组 名称/值对-->对象-->数组 JSON 名称/值对 JSON 数据的书写格式是:名称/值对. ...

  10. python 学习 -- 第一天 初涉

    久闻python大名却一直没去了解,趁学校培训这个机会 开始正式学习python 第一天初步介绍一点关于python的东西 安装了环境及编译器 环境是在之前就安装了 只安装编译器anaconda 之后 ...