安装命令
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$
小结