倉頡工具鏈
cjc (Compiler 編譯
CJPM (Cangjie Package Manager) cjpm 是倉頡語言的包管理工具
cjdb (Debugger) cjdb是一款基於開源LLDB開發的倉頡除錯工具
cjfmt (Cangjie Formatter)程式碼自動格式化工具。
cjcov(Cangjie Coverage)官方覆蓋率統計工具
cjprof(Cangjie Profile)是倉頡語言的效能分析工具
cjpm init 命令 初始化一個新的倉頡模組,這個命令會生成一個包含cjpm.toml模組配置檔案和src倉頡原始碼目錄的工程結構
cjpm build 命令 一鍵式構建倉頡專案
cjpm run 命令構建並執行倉頡專案
在cjpm.toml配置檔案中提供提供了dependencies欄位去指定構建依賴項
cjpm 提供了命令擴充套件機制
其他語言
rustc cargo (cargo new )
Rust 語言透過 cargo 工具提供 build 前置構建的開發者自定義配置
配置環境變數
PATH=$PATH:/opt/cangjie/bin:/opt/cangjie/tools/bin
export PATH
配置動態庫
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/cangjie/bin/runtime/lib/linxu_x86_64_llvm/
普通使用者自己編譯生成的.so庫檔案,
比較好的做法是將這些.so庫檔案的路徑用export指令加入到~/.bash_profile中的LD_LIBRARY_PATH變數
1.一般安裝目錄在:/usr/local/lib-->配置檔案在:/etc/ld.so.conf檔案中將該目錄加入到共享庫的配置檔案中
具體操作:
將動態庫檔案加入配置:執行vi /etc/ld.so.conf,在"include ld.so.conf.d/*.conf"下方增加"/usr/local/lib"。
2.儲存後,在命令列終端執行: /sbin/ldconfig -v ldconfig
其作用是將檔案/etc/ld.so.conf列出的路徑下的庫檔案快取到/etc/ld.so.cache以供使用
作業系統層次
作業系統的使用與應用
站在使用作業系統的角度會比較容易對作業系統核心的功能產生初步的認識
作業系統的原理與概念-全域性觀和系統思維
作業系統的設計與實現-系統實現
作業系統層次
3.使用者
^
|----- 程式設計介面(API, Application Programming Interface)<--> API 是用來約束編譯器 (Compiler)
| 例如 sys_write 使用者庫函式封裝了 sys_write 系統呼叫的API介面
|
2.應用程式<-->應用程式-
^
|----- 系統呼叫介面 (System Call Interface)--
|----- 應用程式二進位制介面(ABI, Application Binary Interface)-約束連結器 (Linker) 和彙編器 (Assembler)
|----- 例如 sys_write 系統呼叫的ABI介面描述了具體用哪些暫存器來儲存引數和返回值
|
1.作業系統的服務
^
附錄
LLDB,全稱為 Low-Level Debugger,是蘋果公司開發的一款開源、高效能的原始碼級偵錯程式。
LLVM,全稱為 Low Level Virtual Machine(低階虛擬機器)的簡稱,是一款編譯器框架是構架編譯器(compiler)的框架系統,以C++編寫而成,
用於最佳化以任意程式語言編寫的程式的編譯時間(compile-time)、連結時間(link-time)、執行時間(run-time)以及空閒時間(idle-time)
MinGW - Minimalist GNU for Windows
參考
倉頡語言工具鏈設計與實現 https://mp.weixin.qq.com/s/1sG0SFO64-jqP9rkdbzi4w
https://cangjie-lang.cn/download
線上程式設計 https://cangjie-lang.cn/experience
倉頡語言命令列工具使用指南
https://rcore-os.cn/rCore-Tutorial-Book-v3/chapter0/2os-interface.html