llvm相关内容

__dso_handle 在哪里定义?

我在尝试编译我的程序时遇到一个未解决的符号错误,它抱怨它找不到 __dso_handle.这个函数一般定义在哪个库中? nm on libstdc++.so.6 的以下结果是否意味着它包含该内容? 我试图链接它,但仍然出现错误. nm libstdc++.so.6 |grep dso00000000002fc480 d __dso_handle 解决方案 __dso_handle ..
发布时间:2022-01-11 15:32:48 其他开发

llvm-gcc 和 clang 二进制文件与 gcc 兼容吗?- 特别是 Windows 上的 mingw gcc

如果我用 llvm-gcc 构建一个静态库,然后将它与使用 mingw gcc 编译的程序链接,结果会起作用吗? llvm-gcc、clang 和普通 gcc 的其他组合也是如此.我对这在 Linux(当然,使用普通的非 mingw gcc)和其他平台上的效果很感兴趣,但重点是 Windows. 我也对所有语言都感兴趣,但特别强调 C 和 C++ - 显然 clang 不支持 Fort ..
发布时间:2022-01-11 15:18:13 其他开发

为什么 ELF 可执行文件可以有 4 个 LOAD 段?

有一个远程 64 位 *nix 服务器可以编译用户提供的代码(应该用 Rust 编写,但我认为这并不重要,因为它使用 LLVM).我不知道它使用哪个编译器/链接器标志,但编译后的 ELF 可执行文件看起来很奇怪——它有 4 个 LOAD 段: $ readelf -e 可执行文件...程序标题:类型 偏移 VirtAddr PhysAddrFileSiz MemSiz 标志对齐...加载 0x0 ..
发布时间:2022-01-11 14:51:42 服务器开发

LLVM 插入内在函数 Cos

我正在尝试将内部 cos() 函数调用插入 LLVM 传递.我在 FunctionPass 中的代码: std::vectorarg_type;arg_type.push_back(Type::getFloatTy(getGlobalContext()));函数 *fun = Intrinsic::getDeclaration(F.getParent(), Intrinsic::cos, arg ..
发布时间:2022-01-09 12:52:24 其他开发

ARM/RaspberryPi 的 LLVM 构建选项

我正在寻求澄清 Raspbian 上 LLVM 3.2 的最佳构建选项 我已经获取了 3.2 的 LLVM 源代码,我的配置是: cd llvm-3.2.src./configure --build=armv6-unknown-linux-gnueabi \--host=armv6-unknown-linux-gnueabi \--target=armv6-unknown-linux-gn ..
发布时间:2022-01-05 10:37:15 其他开发

使用 Clang 编译 RISC-V

我正在尝试使用 Clang(版本 12.0.1)为 RISC-V 架构构建一个 hello world 程序.我已经使用 LLVM(版本 12.0.1)安装了它,设置如下: cmake -G "Unix Makefiles";\-DLLVM_ENABLE_PROJECTS=“clang;clang-tools-extra;libcxx;libcxxabi;libunwind;lldb;compi ..
发布时间:2022-01-04 21:43:27 其他开发

iOS Xcode 编译错误:无法执行命令:分段错误:11

我有一个在过去编译完美的项目,但在上次 Xcode 更新 (6.3.2) 之后,每当我尝试直接在设备上运行它时,都会出现编译错误.在模拟器中构建和运行它工作正常.存档功能也可以正常工作.但是无论我连接什么设备或设备运行的是什么 iOS 版本,我总是遇到相同的编译错误: 堆栈转储:0./Applications/Xcode.app/Contents/Developer/Platforms/iPho ..
发布时间:2021-12-31 22:37:39 移动开发

使用 CMake 在 GCC 和 Clang/LLVM 之间切换

我有许多使用 CMake 构建的项目,我希望能够在使用 GCC 或 Clang/LLVM 之间轻松切换来编译它们.我相信(如果我错了,请纠正我!)要使用 Clang,我需要设置以下内容: SET (CMAKE_C_COMPILER "/usr/bin/clang")SET (CMAKE_C_FLAGS "-Wall -std=c99")SET (CMAKE_C_FLAGS_DEBUG "-g" ..
发布时间:2021-12-26 21:29:47 其他开发

如何告诉 Clang 停止伪装成其他编译器?

我过去遇到过这个问题:LLVM 定义了 __GNUC__,但它不能使用 GCC 可以使用的程序.我在 Windows 上再次遇到它:LLVM 定义了 _MSC_VER,但它不能使用 VC++ 可以使用的相同程序.更糟糕的是(对我来说)我们有专门的 LLVM Clang 和 Apple Clang 代码路径(由于版本方案不同而定义不同),我们必须与工具斗争才能使用它们. 我们如何告诉 Clan ..
发布时间:2021-12-22 18:49:52 其他开发

将机器码转换为 LLVM IR(将 X86_64.X86.ARM 反汇编/重组为 LLVM 位码)

我想将 X86_64、x86、ARM 可执行文件翻译成 LLVM IR(反汇编). 您建议什么解决方案? 解决方案 mcsema 是一个生产质量的二进制提升器.它需要 x86 和 x86-64 并静态“提升"到 LLVM IR.它得到积极维护,获得 BSD 许可,并拥有大量测试和文档. https://github.com/trailofbits/mcsema ..
发布时间:2021-12-18 09:26:15 其他开发

为什么一个 ELF 可执行文件可以有 4 个 LOAD 段?

有一个远程 64 位 *nix 服务器可以编译用户提供的代码(应该用 Rust 编写,但我认为这无关紧要,因为它使用的是 LLVM).我不知道它使用哪个编译器/链接器标志,但编译后的 ELF 可执行文件看起来很奇怪 - 它有 4 个 LOAD 段: $ readelf -e 可执行文件...程序标题:类型 Offset VirtAddr PhysAddrFileSiz MemSiz 标志对齐.. ..
发布时间:2021-12-14 23:39:54 服务器开发

在 C 项目中包含目标文件或汇编文件?

我正在使用 Microsoft 的 ELL 库/编译器来将简单的学习算法部署到微控制器.但我过去对嵌入式开发的了解更好.问题如下: ELL 从 CNTK 机器学习模型创建一个 LLVM IR 文件和一个 C 头文件(没有纯 c/c++ 文件).到现在为止还挺好.现在我可以使用 IR 告诉 llc 为所需的目标制作汇编程序或目标文件(在我的情况下为 ARM Cortex M4). 所以我 ..
发布时间:2021-12-14 10:05:23 Java开发

在 LLDB 中查看数组:相当于 Xcode 4.1 中 GDB 的“@"运算符

我想查看一个由指针指向的元素数组.在 GDB 中,这可以通过使用运算符 '@' as 将指向的内存视为给定长度的人工数组来完成 *指针@长度 其中 length 是我想要查看的元素数量. 上述语法在 Xcode 4.1 提供的 LLDB 中不起作用. 有没有办法在 LLDB 中完成上述操作? 解决方案 在 lldb 中有两种方法可以做到这一点. 最常见的是,你使用 ..
发布时间:2021-12-14 08:48:03 移动开发

动态转发:抑制未完成执行警告

我有一个类公开了一些方法,其实现由内部对象提供. 我使用前向调用在运行时将方法调用分派到内部对象,但 XCode 抱怨,因为它找不到已声明方法的实现. 我在 SO 上发现了一些其他类似的问题,但所有这些问题都通过设计更改得到了解决. 我不想在这里讨论设计,但如果有人对此有任何建议,我有一个 open question on Code Review,更适合这类讨论. 我的问题 ..

Clang 项目的 AST

我使用 Clang python 绑定来提取 c/c++ 文件的 AST.它非常适合我编写的一个简单程序.问题是当我想将它用于像 openssl 这样的大项目时.我可以为项目的任何单个文件运行 clang,但是 clang 似乎错过了项目的一些标题,并且只给了我文件的几个函数的 AST,而不是所有函数.我通过 -I 设置了包含文件夹,但仍然获得了部分功能. 这是我的代码: import c ..
发布时间:2021-11-26 18:02:36 其他开发

如何查看 Clang AST?

我正试图抓住 Clang.所以,我想在解析给定程序后查看 Clang 生成的 AST.是否可以以 .dot 或 .viz 格式转储 AST?有什么工具吗? 解决方案 Clang 支持使用 Graphviz 的 dotty 显示 AST -- 你可以抓取生成的临时 .dot 文件(名称被打印出来)获取图源. clang -cc1 -ast-view your_file.c 您还可以使用以 ..
发布时间:2021-11-26 17:44:38 其他开发