• 虚拟机macos安装brew、llvm并使用cmake构建项目


    安装虚拟机+macos,并安装brew:

    或者参照后续手动下载源码并构建、安装llvm和clang:

    cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS='clang;lldb' -DLLVM_TARGETS_TO_BUILD="X86" -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DLLVM_ENABLE_RUNTIMES='libcxx;libcxxabi;libunwind' ../llvm
    • 构建llvm:
    ninja
    • 安装llvm和clang:
    sudo ninja install
    • 验证安装是否成功:
    llvm-config --cxxflags --ldflags --system-libs --libs core

    配置Xcode:

    新建一个CLT项目

    点击项目进入配置界面,在配置前,先执行下面指令来获取配置信息:

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

    输出结果:

    然后,在TARGETS的Build Settings下,搜索library search,双击Library Search Path后面的空白处,点击+,复制上述输出结果中-L开头的:/usr/local/lib

    然后,搜索header search,双击Header Search Path后面的空白处,点击+,复制上述输出结果中-I开头的:/usr/local/include

    然后,搜索other linker flags,双击Other Linker Flags后面的空白处,点击+,复制上述输出结果中所有的内容:-L/usr/local/lib -Wl .... -lxml2

    点击+,继续添加:

    -lclangAST -lclangASTMatchers -lclangAnalysis -lclangBasic -lclangDriver -lclangEdit -lclangFrontend -lclangFrontendTool -lclangLex -lclangParse -lclangSema -lclangRewrite -lclangRewriteFrontend -lclangStaticAnalyzerFrontend -lclangStaticAnalyzerCheckers -lclangStaticAnalyzerCore -lclangSerialization -lclangToolingCore -lclangTooling -lclangFormat

    以及 -lLLDB。

    然后,搜索Enable C++ Runtime Types并设置为No

    然后,你就可以在main.cpp中添加下述内容并成功运行了:

    1. #include "llvm/ADT/StringRef.h"
    2. #include "clang/Basic/Diagnostic.h"

    如何使用cmake编译和构建项目

    • 开始编译你的项目:
    1. step1: mkdir build
    2. step2: cd build
    3. step3: cmake ../project_name
    4. step4: make 或者 cmake --build .
    5. step5(不一定必要,本质就是把生成的二进制文件按照makelist的要求复制到一个地方):make -install

    补充:如何独立构建llvm和clang

    参照Getting Started with the LLVM System — LLVM 20.0.0git documentation执行操作:

    1. cd llvm-project
    2. cmake -G Ninja -S llvm -B llvm_build \
    3. -DLLVM_INSTALL_UTILS=ON \
    4. -DCMAKE_INSTALL_PREFIX='Users/username/Desktop/llvm_install'
    5. ninja -C llvm_build install
    6. cmake -G Ninja -S clang \
    7. -B clang_build \
    8. -DLLVM_EXTERNAL_LIT=llvm_build/utils/lit \
    9. -DLLVM_ROOT=../llvm_install
    10. ninja -C clang_build
    11. # 说明:如果加引号就写绝对路径,如果不加引号就写相对路径

  • 相关阅读:
    mybatis传递参数
    SQL第三次上机作业
    Servlet详解(下)
    软件设计师 下午题第6题
    Linux驱动开发(八)---树莓派SR04驱动开发
    OpenFeign服务接口调用
    《最新出炉》系列初窥篇-Python+Playwright自动化测试-11-playwright操作iframe-上篇
    网关BL100做主站采集从机设备上云平台示例
    HBase 计划外启动 Major Compaction 的原因
    C++作业2:类与类关系设计
  • 原文地址:https://blog.csdn.net/weixin_43975374/article/details/141072738