Rust-Cargo

選擇Rust作為第一個想要學習的語言,是因為它的宣傳廣告做的好:

Rust是一種系統(tǒng)編程語言。 它有著驚人的運行速度,能夠防止段錯誤,并保證線程安全?!?---- Rust官網(wǎng)

作為一個被C++程序開發(fā)中千奇百怪的Bug折磨了十年的人來說,安全真是奢望,因而萌生了學習Rust的欲望。Rust看得出來吸收了許多其他語言特性和不少的工程開發(fā)經(jīng)驗。由于我自己還在摸索中,所以只能以流水賬的方式來記錄自己的感受。

今天先看工程組織方式。

C++中組織工程的方式有許多種,比如VS的Solution,Xcode的xcodeproj,Qt的qmake,還有CMake,Makefile等等?,F(xiàn)在越來越多的開源庫都使用CMake這個工具來組織工程,好處是通過CMake提供的各種FindModule,來自動配置第三方庫的依賴,和生成對應IDE的Solution,給跨平臺開發(fā)帶來極大的便利。

Rust中提供的工程組織工具名字叫Cargo,由Rust官方提供,地位好比嫡子,比CMake這種庶子應該要牢靠不少。通過Cargo可以很方便的新建工程。

$ cargo build hello --bin

這樣就創(chuàng)建了一個可執(zhí)行程序項目。我們看下它的目錄結(jié)構(gòu):

- src -
         main.rs
- Cargo.toml
- Cargo.lock

其中最關鍵的是Cargo.toml,看起來和cmake地位差不多。

[package]
name = "rust_geometry"
version = "0.1.0"
authors = ["jiangtengfei <jiangtengfei@shining3d.com>"]

[dependencies]

仔細閱讀了cargo的官方guide,發(fā)現(xiàn)cargo相比cmake更加優(yōu)秀:

  1. 第三方庫依賴關系的處理。cargo能妥善得解決第三方庫的版本問題。使用Cargo.lock與Cargo.toml兩個文件,后者是用戶維護,前者由cargo根據(jù)Cargo.toml生成。用戶可以在Cargo.toml中手動指定需要的庫版本號,也可以由cargo來獲取最新的版本號。無論是手動還是自動方式,準確的版本號都會記錄在Cargo.lock文件中。
  2. rust有一個官方的包管理平臺,雖然上面的庫都由開發(fā)者自發(fā)提供,質(zhì)量不一定能保證,但是擁有統(tǒng)一的包管理機制就比C++要強許多,也能減少許多麻煩。
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 注:首發(fā)地址 1. 前言 當在做 Android NDK 開發(fā)時,如果不熟悉用 CMake 來構(gòu)建,讀不懂 CMa...
    cfanr閱讀 24,803評論 1 53
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,174評論 25 708
  • 作者:51CTO講師張漢東 **文章源自:https://zhuanlan.zhihu.com/p/2130789...
    51CTO學院閱讀 967評論 0 3
  • 等待 花開 坐看 花落 聆聽 花聲 贊賞 花韻 2017.1.1...
    玫瑰花的夢閱讀 222評論 0 2
  • 1手機的APP居然不能隨時隨地地寫字,太爛了吧,今天研究了半個小時都研究不出來。操。如果你有這個功能,但是沒有讓我...
    中土閱讀 298評論 1 1

友情鏈接更多精彩內(nèi)容