Cangjie—倉頡程式設計-Hello,World

辰令發表於2024-11-11

倉頡工具鏈

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

相關文章