clang相关内容

如何将 CMake 设置为与嵌入在 Windows 上的 ARM 的 clang 交叉编译?

我正在尝试生成 Ninja 生成文件,以使用 Clang 为 ARM Cortex A5 CPU 交叉编译 C++ 项目.我为 CMake 创建了一个工具链文件,但似乎存在我无法找到的错误或缺失的内容.使用下面的工具链文件调用 CMake 时,出现以下错误. CMake 命令: cmake -DCMAKE_TOOLCHAIN_FILE="..\Src\Build\Toolchain-c ..
发布时间:2021-09-25 20:13:06 C/C++开发

当我给出一个特定的目标时,Clang 编译器找不到 C/C++ 标准库,尽管它在没有给出目标的情况下也能工作

我目前在 ubuntu 上使用 clang11 来编译任何 c/c++ 代码并且它工作正常但是当我尝试编译任何代码时(包括 任何标准库)到任何特定目标的汇编代码,例如 x86_64(即使我有 x86_64)riscv 并给出一个标记 --target=x86_64 或 --target=riscv32 我在代码中包含的任何标准库都出错了.一个简单的例子: //ex.cpp#includeint ..
发布时间:2021-09-12 19:14:16 C/C++开发

如何使用 clang-format 3.9 忽略文件或目录

我目前正在使用 travis ci 来检查补丁进入 github 并试图弄清楚是否有任何用于 clang-format 3.9(因为 travis ci 目前仅支持 ubuntu 14.04 最新版本)以忽略整个目录或扫描更改时的文件. 我的 .travis.yml 文件: 语言:c++须藤:必需dist:值得信赖安装:- sudo apt-get 更新- sudo apt-get ins ..
发布时间:2021-09-09 19:32:05 其他开发

Docker 不遵循构建目录中的符号链接

我正在对一个应用程序进行 Dockerizing,该应用程序涉及通过 Clang 将二进制文件与其他 C 文件链接.我们维护二进制文件的符号链接版本,因为它们在整个代码库中使用.我的 Docker 构建目录包含整个代码库(包括源文件以及这些源文件的符号链接),当我执行诸如 cat [symlinked_file] 之类的操作时,Docker 会识别这些文件(即文件是cat 正确).但是,当我在我的 ..
发布时间:2021-09-03 20:08:59 其他开发

Clang 在静态链接期间删除死代码(gcc 相当于 -Wl、--gc-sections)

我正在链接一个静态库,我想知道应该如何处理 llvm/Clang 中死代码的剥离.我找不到任何暗示 Clang 具有 -Wl、--gc-section 或 -dead_strip 等价物的文档. 我假设在更高的优化级别会自动执行一些死代码消除,但在 gcc 中也是如此,对吧?然而,gcc 通过上述标志提供了一些明确的控制.Clang 没有提供,还是我遗漏了什么? (系统是OSX) ..
发布时间:2021-08-30 18:34:15 其他开发

如何使用 GCC/Clang 编译器知道/限制 C 程序中的静态堆栈大小?

我正在编写一个嵌入式程序,它使用一个已知大小的静态有限堆栈区域(换句话说,我有 X 字节的堆栈,并且没有覆盖操作系统可以按需分配更多堆栈).我想在运行时避免错误,并在构建时捕获它们 - 如果我在运行时错误地在某些函数块中声明了太多不适合堆栈的变量,则有一些指示. 鉴于我没有在我的程序中使用递归调用,我能否在编译期间以某种方式知道我的所有局部变量在最深的函数调用路径上将占用多少堆栈空间?或者, ..
发布时间:2021-08-28 18:38:25 其他开发

检索有关预处理器指令的信息

我最近开始使用 libclang 来解析 C 文件.我遇到的问题显然是,libclang 在生成 AST 之前启动了预处理器.我想禁止预处理器运行,而是提供预处理器指令在文件中的信息... 我使用以下 python 脚本(cindex.py 和 libclang) 导入编解码器从 clang.cindex 导入 *类源文件(对象):def __init__(self, path):使用 c ..
发布时间:2021-07-19 18:54:57 C/C++开发

当 Linux 机器有更多内存时,为什么我的高内存需要代码可以在 MacOS 上运行而不是在 Linux 上?

所以我有一个程序,需要大量内存,并且需要分配(稀疏)600 000 x 600 000整数数组.尽管我认为可以在空间和内存要求方面进行改进,但是我无法在内存为40gb的计算机(Manjaro Linux x86_64)上运行该磁盘,而我的上级却可以在内存为16gb的计算机上运行该磁盘驱动器.在MacOS(64位)上.在我的计算机上运行时,程序将运行直到尝试 malloc 该数组,然后程序被杀死. ..
发布时间:2021-05-30 19:40:48 服务器开发

无法交叉编译手臂的C库(iOS)

我正在尝试从arm64开始交叉编译iOS的 libDSM . 我已经提取了源代码,并一直在尝试使用以下命令对其进行配置: export XCODEDIR = $(xcode-select -p)export DEVROOT = $ {XCODEDIR}/Platforms/iPhoneOS.platform/Developer导出SDKROOT = $ DEVROOT/SDKs/iPho ..
发布时间:2021-05-30 19:40:45 移动开发

cflags' -Wl,-export-dynamic'vs链接器标记' -export-dynamic'

我在带有Clang的CMake中用不同的编译标志编译了相同的程序(不是库) with CMAKE_C_FLAGS = -Wl,-export-dynamic 使用CMAKE_EXE_LINKER_FLAGS = -export-dynamic 但是我注意到第二种方法似乎不起作用.我找不到导出的符号.我很惊讶只有第一种方法有效.我不知道C编译器是否执行棘手的操作,Clang或CMake ..
发布时间:2021-05-30 19:40:38 其他开发

如何在macOS的Qt中使用OpenMP进行编译?

我正在尝试在我的C ++ Qt应用程序中引入一些OMP并行化,但是我无法在macOS下对其进行编译.同事们正在使用Windows或Linux,并且一切工作正常.我需要在Qt的.pro文件中写什么,并在系统中做什么? 此站点或任何其他站点上的类似问题均未解决我的问题.我通常使用Apple提供的clang进行编译,但似乎对此没有OMP支持.因此,我通过自制软件在llvm中安装了clang,相应地 ..
发布时间:2021-05-30 19:40:30 C/C++开发

为什么gcc和clang生成mov reg,-1

我正在使用编译器资源管理器查看gcc和clang的一些输出,以了解这些编译器为某些代码发出的汇编代码.最近,我查看了这段代码的输出. int compare_int64(左侧为int64_t,右侧为int64_t){返回(左右)?1:0;} 本练习的重点不是针对C ++,无论如何都可以内联此代码,而是在调用此类函数时. 使用-O3,这是输出: c声: ..
发布时间:2021-05-30 19:40:12 其他开发

"无效的符号重新定义& quot;LLVM上的内联ASM

我有一个Xcode(4.5.2)项目,可以使用Debug配置很好地构建.但是,既然我现在切换到构建Release配置,我遇到了一个问题:我的内联汇编函数之一是收到错误无效的符号重新定义.搜查该错误消息后,发现有几个人遇到了该编译器错误,但没有任何含义.这是函数,其中的错误行带有注释: inline int MulDivAdd(int nNumber,int nNumerator,int nDe ..
发布时间:2021-05-30 19:40:01 C/C++开发

如何在CLang C ++下编译/使用头单元模块?

在文档中说CLang中的模块支持是部分的.我正在使用LLVM 12.0的最新版本在Windows 64位下使用CLang. 我成功地设法使用了常规模块(通过 import modulename; 导入). 但是我还没有创建和使用标头单元模块,即您通过 import" header.hpp"; 导入的模块.您可以通过示例建议如何做到这一点吗? 为尝试头单元,我创建了下一个玩具文件: ..
发布时间:2021-05-30 19:39:44 C/C++开发

任何基于libclang的C/C ++重构工具?(甚至是最简单的“玩具示例")

正如我所指出的-查看视频演示文稿和幻灯片). 您知道基于libclang的任何 C/C ++重构工具吗? “任何"甚至包括简单的alpha状态项目,并支持一种重构技术.它可能没有预处理器支持.作为我正在谈论的功能的一个示例:更改方法名称,无论它一次支持多个文件还是一次仅支持一个文件.您可能会想知道什至需要小的工作示例的目标是什么.我的想法是,创建一个代码示例和小型工具的列表放在一个地方 ..
发布时间:2021-05-30 19:39:34 C/C++开发