美文网首页
part1 搭建项目调试环境

part1 搭建项目调试环境

作者: 牛奶言兼 | 来源:发表于2021-12-11 13:18 被阅读0次

    参考官方开发手册:Clang - Getting Started (llvm.org)

    使用GitHub官方项目llvm / llvm-project下载速度偏慢且容易下载失败,推荐使用国内gitee的镜像Gitee 极速下载 / LLVM

    下载完成后,可以参考项目中的rootdir/README.md文件,进行简单配置,也可以参考clang子项目的配置进行。在此,我根据个人目标诉求研究编译前端,也就只需要配置clang子项目就好,且在X86_64平台进行环境搭建,所以编译目标还可以进一步精简。

    熟悉cmake的可以根据rootdir/llvm/CMakeLists.txt中的编译参数进行配置,后续也会根据个人经历简单对cmake进行介绍。可以参考cmake官方手册

    简单记录一下自己的构建过程,仅供参考:

    step1 工作目录切换到项目根目录中

    cd rootdir

    step2 新建构建目录(注:主要是防止构建产出破坏原项目布局,且容易管理构建对象,可按需研究对象进行构建目录的划分建立)

    mkdir build_clang_debug

    step3 工作目录切换到构建目录中

    cd build_clang_debug

    step4 执行cmake生成构建目标及构建选项指令(注:我是在X86_64平台研究学习,也不涉及跨平台编译,所以后端支持也只需要X86即可,可根据需要进行后端目标平台的支持,具体可参考rootdir/llvm/CMakeLists.txt中的LLVM_ALL_TARGETS字段查看支持的平台;需要说明的一点——构建默认按debug模式进行构建,如需使用release模式进行构建,需要添加cmake构建选项-DCMAKE_BUILD_TYPE=Release

    cmake -DLLVM_ENABLE_PROJECTS=clang -DLLVM_TARGETS_TO_BUILD=X86 -G "Unix Makefiles" ../llvm

    step5 构建目标(注:make指令选项,参考官方手册

    make clang -j4

    编译过程中的异常处理记录

    使用官方项目进行构建,最常遇见问题是

    collect2: ld terminated with signal 9

    这个问题是内存大小不够导致的,可以通过增加交换区来解决。

    参考:

    collect2: ld terminated with signal 9 错误解决办法

    若还有其他问题,欢迎留言探讨。

    相关文章

      网友评论

          本文标题:part1 搭建项目调试环境

          本文链接:https://www.haomeiwen.com/subject/vuerfrtx.html