当前位置: 首页 > article >正文

LLVM编译C++测试

安装命令 

sudo apt install clang

sudo apt-get install llvm

源码 hello.cpp

#include <iostream>
using namespace std;
int main(){cout << "hello world" << endl;return 0;
}

编译 

clang++ -emit-llvm -S hello.cpp -o hello.ll

执行后,生成文件hello.ll

opt -O3 hello.ll -o optimized.ll 

lkmao@ubuntu:~/llvm$ ls
hello.cpp  hello.ll  optimized.ll
lkmao@ubuntu:~/llvm$ 

生成汇编代码 

lkmao@ubuntu:~/llvm$ llc optimized.ll -o output.s
lkmao@ubuntu:~/llvm$ ls
hello.cpp  hello.ll  optimized.ll  output.s
lkmao@ubuntu:~/llvm$ 
 

生成可执行文件 

clang++ output.s -o hello

lkmao@ubuntu:~/llvm$ clang++ output.s -o hello
lkmao@ubuntu:~/llvm$ ls
hello  hello.cpp  hello.ll  optimized.ll  output.s
lkmao@ubuntu:~/llvm$  

或者 

clang output.s -o hello_c -lstdc++

lkmao@ubuntu:~/llvm$ clang output.s -o hello_c -lstdc++
lkmao@ubuntu:~/llvm$ ls
hello  hello_c  hello.cpp  hello.ll  optimized.ll  output.s
lkmao@ubuntu:~/llvm$ 
 

测试结果

 lkmao@ubuntu:~/llvm$ ./hello
hello world
lkmao@ubuntu:~/llvm$ ./hello_c 
hello world
lkmao@ubuntu:~/llvm$ 

小结 

http://www.lryc.cn/news/2384307.html

相关文章:

  • ubuntu24.04+RTX5090D 显卡驱动安装
  • MATLAB贝叶斯超参数优化LSTM预测设备寿命应用——以航空发动机退化数据为例
  • 鸿蒙应用开发:Navigation组件使用流程
  • javaweb的拦截功能,自动跳转登录页面
  • 【Linux】系统在输入密码后进入系统闪退锁屏界面
  • 当物联网“芯”闯入纳米世界:ESP32-S3驱动的原子力显微镜能走多远?
  • 微信小程序webview与VUE-H5实时通讯,踩坑无数!亲测可实现
  • Web请求与相应
  • LeetCode222_完全二叉树的结点个数
  • STM32之温湿度传感器(DHT11)
  • 在微创手术中使用Kinova轻型机械臂进行多视图图像采集和3D重建
  • 2025版 JavaScript性能优化实战指南从入门到精通
  • FluxCD入门操作文档
  • DOM API-JS通过文档对象树操作Doc和CSS
  • 实现了TCP的单向通信
  • PostgreSQL中通过查询数据插入到表的几种方法( SELECT INTO和INSERT INTO ... SELECT)
  • STM32项目实战:ADC采集
  • CYT4BB Dual Bank - 安全启动
  • Windows系统下MySQL 8.4.5压缩包安装详细教程
  • 科技行业智能化升级经典案例—某芯片公司
  • Python编程从入门到实践 PDF 高清版
  • 互联网大厂Java求职面试:Spring Cloud微服务架构与AI集成挑战
  • MySQL中索引最左前缀法则、索引失效情况、前缀索引、索引设计原则
  • ⚡ Linux Debian 安装与配置 Docker
  • 系统性能不达标,如何提升用户体验?
  • 《深度掌控Linux:openEuler、CentOS、Debian、Ubuntu的全方位运维指南》
  • Sentinel原理与SpringBoot整合实战
  • 智能守护校园“舌尖安全“:AI视频分析赋能名厨亮灶新时代
  • c++ 模板技巧——类型萃取
  • 初步尝试AI应用开发平台——Dify的本地部署和应用开发