
[英]Sequence point compiler warning only in gcc but not in clang
考虑以下代码: 它在 gcc 中产生以下警告 但不在 clang 中: 为什么? 这可能是相关的,但引用的gcc 错误已经修复。 我有gcc --version gcc (Debian 12.2.0-9) 12.2.0 。 ...
[英]Sequence point compiler warning only in gcc but not in clang
考虑以下代码: 它在 gcc 中产生以下警告 但不在 clang 中: 为什么? 这可能是相关的,但引用的gcc 错误已经修复。 我有gcc --version gcc (Debian 12.2.0-9) 12.2.0 。 ...
[英]does new version libstdc++ compatible with older version
我的操作系统默认 gcc 版本是 4.8.5,我编译了一个程序使用 gcc-11,所以这个程序不能为旧的 libstdc++.so.6 运行,我可以使用 gcc-11 中的 libstdc++.so.6 替换旧的吗? (意味着作为系统范围内的默认值)? 替代后,其他用gcc-4.8.5编译的程序也能 ...
[英]strtok_s and compilers C11 onward compliance
C11 中strtok_s的声明及其用法看起来与编译器中的strtok_s非常不同,例如与 Visual Studio 2022 (17.4.4) 捆绑在一起的最新版本以及 GCC 12.2.0(查看 MinGW64 发行版)。 我担心这种不同的形式早在 C11 之前就已被开发为strtok的更安 ...
[英](C) Undefined symbols for architecture arm64
当前在编译包含多个文件的程序以及处理 main 之外的文件时遇到问题。 我怀疑它与编译器有关,与 -c 命令有关,或者可能是我在安装过程中搞砸了。 解决这个问题的任何帮助都会是一个巨大的帮助,我一直在询问同学并在线查看,但似乎解决方案必须非常简单。 这是 source.c 文件,我打算更改的文件。 ...
[英]What is the purpose for using `-fdata-sections` and `-ffunction-sections` these two options in gcc?
正如手册页所说: -ffunction-sections -f数据部分将每个 function 或数据项放入其自己的部分如果目标支持任意部分,则为输出文件。 这 function 的名称或数据项的名称确定 output 文件中该部分的名称。 编译这段代码后:... int bss_var_1 ...
[英]Visual Studio Code C Intellisense doesn't show functions description/documentation on macOS (Using Either C/C++ Intellisense or Clangd)
我的 mac 上的 vscode 一直存在这个问题,当我 hover 或调用系统函数时,它没有显示它们的描述,它只显示 arguments,没有任何解释。 我尝试使用 MS C/Cpp 扩展及其默认的智能感知并切换到 clangd,但都没有用。 相反,当我使用 CLion 时,它显示一切都很好。 ...
[英]Unit test with check library on MacOS 11.6.1: ld: library not found for -lcheck_pic
因此,我正在尝试通过 MacOS 11.6.1 上的一个简单示例来学习如何使用库检查。 为此,我复制了以下问题的 Merlijn Sebrechts 代码: Using C unit testing framework Check without Autotools? 当我在终端中执行命令时,出现以 ...
[英]Windows VSCode C "cannot open source file" from WSL GCC
目前在Windows上使用VSCode进行开发,包括C个文件。 但是,包括 unix header 文件(如 <unistd.h>)导致 VSCode 认为存在错误。 当前的编译器路径是“C:/Program Files (x86)/Microsoft Visual Studio/20 ...
[英]QEMU for AArch64: why execution stucks at "ldr q1, [x0]"?
我有这个简单的 C 代码: 编译为: 并执行为: 印刷: 为什么不打印yyy ? 通过减少问题,我发现: 对于strcpy GCC 生成的代码不是“调用 strcpy”(见下文) ldr q1, [x0]导致不打印yyy 。 这是foo的生成代码: 如果我将ret放在ldr q1, [x0]将打 ...
[英]gcc don't compile c
我的操作系统是 Ubuntu Linux 20.04 我重新安装了 gcc 和一些库我没有改变系统中的任何东西,我不知道会发生什么。 错误: 代码: ...
[英]When i Compile GTK3+ Source code, has Error
当我编译 GTK+ 代码时(在 C 中)gcc 有很多错误! 此代码来自 GTK 演示,但它的示例不适用于我的 Fedore 37! GTK Demo截图那是源代码: 但是当我编译它时: 错误: 但是当我点击 GTK Demo 上的运行按钮时,它在我的电脑上运行: Run Key Combo Bo ...
[英]abi::__dynamic_cast returns nullptr for upcasts
我需要像这样连接到 C++ 的异常抛出机制: 如果你想知道“你为什么要那样做?” 我有一个抛出异常的简单示例,它是非常简单的 class 层次结构的一部分: 我看不出__dynamic_cast不能向上转型的原因,但它返回nullptr 。 为什么? 我如何让它工作? 它似乎能够很好地进行向下转换 ...
[英]How does this compiler optimization work?
我在看woothash hash function, wyhash的重复 - 根据 SMHasher 项目,最好的 hash 函数之一。 GCC 和-O1都能够在 -O1(或更高级别,当然)执行非常深入的优化,我完全不明白他们 go 是如何从 900 多行 asm 中使用-Og的,它紧跟源代码, ...
[英]Can C++ Compilers optimize overloaded default parameters?
我一直在重构一个嵌入式芯片的代码库,它使用许多带有默认参数的方便的重载函数,如下所示:int state, prevState; float time; void setState(int newState, float newtime) { if (newState != state) ...
[英]How to make a develop env by using singularity+vscode
我为 arm 开发创建了一个奇点图像。 我在我的 WSL 中安装了一个奇点。 我将在wsl上编码和调试,然后在我的奇异点使用交叉编译器将其移动到arm平台。 如何使用vscode构建我的程序(arm版)? 或者如何将奇点与 vscode 结合使用? 我尝试用奇点 shell 构建我的程序,它成功了。 ...
[英]C++ ODR violation and shared libraries
假设我们有一个静态链接到 MyLib1.0 的程序。 还有一个与 MyLib1.1 链接的共享库。 现在如果程序加载这个共享库会发生什么? 我的假设是在运行时我们将对相同的符号有多个不同的定义。 以下两种情况是否都违反了 ODR? 共享库导出所有符号,包括MyLib1.1的符号共享库隐藏了MyLib ...
[英]What is the logic of demangling?
我有这样的代码。 代码正在运行我知道代码打印 'm' 因为 demangling ( https://gcc.gnu.org/onlinedocs/libstdc++/manual/ext_demangling.html ) 但是为什么编译器为size_t打印'm'? 映射的逻辑是什么 ('i' ...
[英]How to create a Makefile that compiles auto-generated C files?
使用常规 C 文件自动编译自动生成的 C 文件我们开发了一个程序“ cperformer ”,它能够从文本文件生成一个 C 文件(为简单起见)。 它是一种将 C 文件生成为 output 的“元编译器”。因此,我们希望通过自动生成每个 C 文件作为 makefile 的第一步来改进此“C 生成器” ...
[英]Program is Big-Endian even though system is Little-Endian
不知何故,我的程序将变量视为大端,即使我的系统是小端。 当我执行“lscpu | grep Endian”时,它返回 但是当我使用以下代码运行调试 gcc (x86_64 linux) 可执行文件时: 它返回 0x499FDC6D,而对于小端它应该返回 0x6DDC9F49 ...
[英]Why does -Wl,--entry work with gcc, but not g++?
我正在尝试编译一个程序,以便它从不同的入口点开始。 我正在使用 Ubuntu 20.04.5、GCC 和 G++ 9.4.0 运行 WSL1 我发现将标志-Wl,--entry=foo添加到编译器会将foo()链接为条目 function。测试,这适用于 gcc,但不适用于 g++。 使用示例文件 ...