仓颉工具链
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
标签:cjpm,操作系统,Cangjie,仓颉,so,PATH,World,Hello
From: https://www.cnblogs.com/ytwang/p/18540458