摘要: 数据类型 有 标量和复合类型 rust是静态编译语言,需在编译时知道所有变量的类型。 1)通常基于变量上下文使用的值,编译器能推断出具体类型。 2)若可能的类型存在多种,则需手动标注,如下例子。 let d: u32 = "56".parse().expect("not a num"); // 因为 阅读全文
posted @ 2023-10-12 00:36 00lab 阅读(25) 评论(0) 推荐(0) 编辑
摘要: rust定义变量 let关键字 用于声明变量:let (mut) 变量名 变量值是否改变 默认变量值不可变(Immutable),在声明变量时加上mut才为可变变量。 let x = 5; x = 6; let mut y = 6; y = 8; let mut y: u32 = 9; 第二行编译报 阅读全文
posted @ 2023-10-11 15:17 00lab 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 在Cargo.toml中配置依赖库(在rust里叫crate),cargo会自动从配置的库网址中下载,可配如下国内源 配置rust的国内源: linux下: vim ~/.cargo/config windows:c盘/用户/用户名/.cargo/config 如果没有config文件,创建一个即可 阅读全文
posted @ 2023-10-09 17:26 00lab 阅读(1014) 评论(0) 推荐(0) 编辑
摘要: rust的官网 https://www.rust-lang.org/ 1. 安装、卸载rust windows环境 下载windows安装包 双击后进入命令行安装,按照提示输入数字选项安装即可。 如果系统中缺少c++的库,会提示先安装visual studio。 linux or MAC: curl 阅读全文
posted @ 2023-10-09 16:16 00lab 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 见下文代码,方式一样的 ```c++ #include #include "llvm/IR/Module.h" #include "llvm/IR/LLVMContext.h" #include "llvm/Support/raw_ostream.h" #include "llvm/IR/Funct 阅读全文
posted @ 2023-08-09 19:53 00lab 阅读(77) 评论(0) 推荐(0) 编辑
摘要: llvm::raw_ostream llvm::raw_ostream是一个抽象class,有两个重要的纯虚函数由子类实现,write_impl()保存将数据写入基础流的逻辑,current_pos()返回流中当前正在写入的位置。 llvm提供了以下输出流实现: - `outs()` for wri 阅读全文
posted @ 2023-08-02 21:19 00lab 阅读(482) 评论(0) 推荐(0) 编辑
摘要: **编译生成可执行文件** ```shell clang hello.c -o hello ``` ### 编译生成bc文件(不可读) 得到 LLVM 字节码文件.bc(不可读字节码文件) ```shell clang -O3 -emit-llvm hello.c -c -o hello.bc `` 阅读全文
posted @ 2023-08-02 21:14 00lab 阅读(376) 评论(0) 推荐(0) 编辑
摘要: ## 一个ifelse源码编译 先看如下代码: ```c++ int func(int a) { int b; if (a > 5) b = 6; else b = 5; return b; } ``` 编译命令 ../output/bin/clang++ -emit-llvm llvm_if_el 阅读全文
posted @ 2023-08-02 21:10 00lab 阅读(78) 评论(0) 推荐(0) 编辑
摘要: ## 四则运算指令 介绍如下: ```c++ #include #include "llvm/IR/Module.h" #include "llvm/IR/LLVMContext.h" #include "llvm/Support/raw_ostream.h" #include "llvm/IR/F 阅读全文
posted @ 2023-08-02 20:07 00lab 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 主要分全局变量、函数参数、局部变量(常量)与返回值 ## 测试全局变量 介绍说明、代码、编译与结果如下: ```c++ #include "llvm/IR/Module.h" #include "llvm/IR/LLVMContext.h" #include "llvm/Support/raw_os 阅读全文
posted @ 2023-08-02 19:59 00lab 阅读(69) 评论(0) 推荐(0) 编辑