• IDE: Clion
  • LLVM
cmake_minimum_required(VERSION 3.9)
project(clang_demo) find_package(LLVM REQUIRED CONFIG) message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}")
message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}") set(CMAKE_CXX_STANDARD 17) # Set your project compile flags.
# E.g. if using the C++ header files
# you will need to enable C++11 support
# for your compiler. include_directories(${LLVM_INCLUDE_DIRS})
add_definitions(${LLVM_DEFINITIONS}) add_executable(clang_demo main.cpp)
# Find the libraries that correspond to the LLVM components
# that we wish to use
llvm_map_components_to_libnames(llvm_libs support core irreader) # Link against LLVM libraries
target_link_libraries(clang_demo ${llvm_libs})
// main.cpp
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Module.h" using namespace llvm; static std::unique_ptr<LLVMContext> my_Context;
static std::unique_ptr<Module> my_Module; static void InitializeModule() {
my_Context = std::make_unique<LLVMContext>();
my_Module = std::make_unique<Module>("Hello Modlue", *my_Context);
} int main(int argc, char *argv[]) {
InitializeModule();
my_Module->print(outs(), nullptr); return 0;
}

不使用 cmake 构建项目,可执行以下命令

clang++ -g mai.cpp `llvm-config --cxxflags --ldflags --system-libs --libs core` -o hello_world

获取 LLVM 配置信息

llvm-config --cxxflags --ldflags --system-libs --libs core

C++:如何将 LLVM 嵌套到你的项目中去的更多相关文章

  1. MES项目中出现的一个事务嵌套的使用场景

    昨天在MES项目中,需要在业务逻辑的几个关键点记录错误信息,需要把错误信息写入数据表. 但是由于整个业务逻辑都是包在一个事务模板里面的 比如这样的: WhhTransactionTemplate tr ...

  2. 网站开发进阶(十一)如何将一个jsp页面嵌套在另一个页面中

    如何将一个jsp页面嵌套在另一个页面中 这个在做网页中常要用到,有些通用的内容可集中放在一个页面文件中,其它要用到这些内容的页面只需要包含(引用)这个通用文件即可.这样便于维护,如果有很多网页,当通用 ...

  3. 网站开发进阶(十)如何将一个html页面嵌套在另一个页面中

    如何将一个html页面嵌套在另一个页面中 1.IFrame引入 <IFRAME NAME="content_frame" width=100% height=30 margi ...

  4. 如何将一个HTML页面嵌套在另一个页面中

    一 在原页面嵌入其他页面 1.使用iframe框架 客户端页面嵌套可以使用iframe的方法,弊端是必须事先想好被嵌套的页面在首页中要占多大的位置. 如果被嵌套页面太大,超过事先定义的宽度或高度,则首 ...

  5. iframe框架嵌套技巧(全屏,去双滚动条)

    一般情况下我们很少用到iframe(框架),但有些特殊的情况下我们不得不使用iframe,那么或许或遇到嵌套内容不全屏,网页周围有边框,双滚动条等等情况,下面来说一下处理技巧. 全屏与边框处理: &l ...

  6. Mysql update语句赋值嵌套与在表列中数据后面增加数据

    1.Mysql update语句赋值嵌套select  点击(此处)折叠或打开 update a set col=(select col from a where id='5') where id&g ...

  7. java-ArrayList中去重复字符串或重复对象、LinkedList集合、泛型、增强for、静态导入、可变参数、asList()方法、集合嵌套

    1.去除ArrayList中重复字符串元素方式 * A:案例演示 * 需求:ArrayList去除集合中字符串的重复值(字符串的内容相同) * 思路:创建新集合方式 /** * A:案例演示 * 需求 ...

  8. 《ASP.NET1200例》嵌套在DataLisT控件中的其他服务器控件---DropDownList控件的数据绑定

    aspx <script type="text/javascript"> function CheckAll(Obj) { var AllObj = document. ...

  9. admin嵌套在spring mvc项目里,菜单栏点击新连接每次都会重置

    <ul class="treeview-menu" id="ul_schedule"> <li><a href="#&q ...

  10. 项目中那些事|ListView中嵌套ListView问题

    要在一个ListView中放入另一个ListView,也即在一个ListView的每个 item 中放入另外一个ListView.但刚开始的时候,会发现放入的子ListView会显示不完全(我这里只显 ...

随机推荐

  1. .NET8:快速集成Rapid.NET三维控件

    .NET8正式版本发布了,AnyCAD Rapid.NET针对.NET8进行了升级和优化.本文以WPF项目为例介绍在.NET8中使用AnyCAD Rapid.NET三维控件. 1 从.NET6升级 若 ...

  2. 【Java】Java中StringBuilder()成员方法append()和toString()

    StringBuilder就相当于C++的String长度可变,用于构造字符串对象,内部使用自动扩容的数组操作字符串数据. StringBuilder和StringBuffer使用的是相同的API[区 ...

  3. 2023你需要使用的最佳VSCode扩展插件

    选择最佳的 Visual Studio Code(以下简称 VSCode) 扩展插件对于提高开发效率和改善编程体验非常重要. 下面将详细介绍一些广受欢迎且功能丰富的 VSCode 扩展插件,包括编辑器 ...

  4. windows下tomcat开机自启动

    在Windows下,可以通过以下步骤将Tomcat设置为开机自启动: 1. 打开Tomcat安装目录:通常情况下,Tomcat的安装目录位于`C:\Program Files\Apache Softw ...

  5. 给祖传系统做了点 GC调优,暂停时间降低了 90%

    问题描述 公司某规则引擎系统,在每次发版启动会手动预热,预热完成当流量切进来之后会偶发的出现一次长达1-2秒的Young GC(流量并不大,并且LB下的每个节点都会出现该情况) 在这次长暂停之后,每一 ...

  6. Redis工具类及Redis序列化

    导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sp ...

  7. MD5在文件安全中的应用与重要性

    一.MD5简介 MD5(Message-Digest Algorithm 5)是一种广泛应用的密码散列函数,由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)于1992年提出.它主 ...

  8. adb shell getprop 获取系统属性

    adb shell getprop 以华为p30为例: [gsm.default.apn]: [gsm.defaultpdpcontext.active]: true [gsm.dualcards.s ...

  9. iMessage群发,iMessage群发基础知识,iMessage群发源代码分享

    在当今的数字化时代,即时通讯已经成为我们日常生活和工作中不可或缺的一部分,其中,苹果的iMessage服务因其出色的用户体验和无缝的设备间同步而备受用户喜爱. 然而,你是否想过如何利用iMessage ...

  10. 文心一言 VS 讯飞星火 VS chatgpt (62)-- 算法导论6.5 1题

    文心一言 VS 讯飞星火 VS chatgpt (62)-- 算法导论6.5 1题 一.试说明 HEAP-EXTRACT-MAX在堆A=(15,13,9,5,12,8,7,4,0,6,2,1)上的操作 ...