如何使用clang+llvm+binutils+newlib+gdb搭建交叉编译环境
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用clang+llvm+binutils+newlib+gdb搭建交叉编译环境相关的知识,希望对你有一定的参考价值。
参考技术A测试环境:Windows8.1 + MSYS2 with Mingw, Clang, LLVM + GNU Tools for ARM Embedded Processor
首先用用Clang生成LLVM字节码
clang -emit-llvm --target=arm-none-eabi -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
注意,需要手动添加GNU Tools for ARM Embedd的头文件
然后用llc生成汇编代码
接着,使用GNU Tools for ARM Embedded Processor的汇编器生成可执行文件
arm-none-eabi-as -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
二进制文件用GNU Tools for ARM Embedded Processor里的arm-none-eabi-objcopy生成
一些需要注意的地方是Clang的默认配置可能和目标架构的汇编器不一致。比如arm-none-eabi-as会默认开启short-enums,当直接使用arm-none-eabi-gcc时这不是问题,因为编译器也默认开启了这个选项,但Clang不会,所以需要手动加上-fshort-enums。
Visual Studio 2019 LLVM clang 标志
【中文标题】Visual Studio 2019 LLVM clang 标志【英文标题】:Visual Studio 2019 LLVM clang flags 【发布时间】:2020-09-19 23:01:53 【问题描述】:您好,我选择了平台工具集 LLVM (clang-cl)
当我构建项目时,Visual Studio 启动 clang-cl.exe,我如何传递 clang 参数(标志)?
【问题讨论】:
【参考方案1】:这与使用 Visual C++ 编译器手动传递选项的机制相同,因为您可以通过添加到以下“附加选项”中来传递它们: “配置属性”、“C/C++”、“命令行”:
要找出可用的 clang 选项子集,请打开 Visual Studio 2019 命令提示符并键入:clang-cl -?
这将首先列出 Microsoft 兼容性选项(即 VC++ 使用的那些),然后是 Clang 选项。
【讨论】:
以上是关于如何使用clang+llvm+binutils+newlib+gdb搭建交叉编译环境的主要内容,如果未能解决你的问题,请参考以下文章
如何告诉 clang 我的 LLVM 目标应该使用 16 位“int”?
如何使用 Clang 在 C 程序中嵌入 LLVM 程序集或内在函数?
如何在 Linux 上卸载准确的 LLVM 和 CLANG 版本