
[英]Is this a perhaps a GCC issue/bug
当我解决今天的 AOC 挑战时,我偶然发现了一个有趣的现象,似乎 GCC 编译器有问题,或者我做了一些我还没有意识到的不正确的事情。 在下面的代码中,我正在解析从文件 input.txt 读取的一行上的数字偏移量列表: go 将结果存储在 num 变量中时,出现错误。 我还没有检查反汇编,看看发生 ...
[英]Is this a perhaps a GCC issue/bug
当我解决今天的 AOC 挑战时,我偶然发现了一个有趣的现象,似乎 GCC 编译器有问题,或者我做了一些我还没有意识到的不正确的事情。 在下面的代码中,我正在解析从文件 input.txt 读取的一行上的数字偏移量列表: go 将结果存储在 num 变量中时,出现错误。 我还没有检查反汇编,看看发生 ...
[英]Why is Cod::Blocks giving me Null instead of a input char?
源代码: #3 主.c #3 函数.h #3 函数 c 输出: 我用相同的代码使用https://www.online-cpp.com/online_c_compiler ,它在在线编译器上运行良好。 但是当我尝试在 Code::Blocks 上使用它时,它显示: 不知道是什么问题,会不会是 ...
[英]operand must be an int register in armv8
我正在 ARMv8 中开发一个程序,当尝试使用 gcc 编译它时,我收到以下代码行的错误消息“操作数 3 必须是 integer 寄存器”: 同样,我收到错误消息“操作数 3 的扩展/移位操作数寄存器中预期有整数寄存器” 这是什么意思? 我该如何解决? ...
[英]Boost undefined symbol for architecture arm64
我正在尝试构建一个项目,其中包含需要 boost 1.65.1 的代码。 我使用的是 Mac OS M1 芯片组 (arm64) 我使用自制软件brew install boost 并且版本 1.80.0 已正确安装。 我复杂地使用 gcc g++(而不是 clang),我在我的 cmake 中包含 ...
[英]Multi-dimensional array of unknown bounds argument : difference between C and C++
以下程序编译为 C 程序: 但是,当编译为 C++ 和 g++ 时,我有: 好像C的这个特性在C++中是不存在的,有没有什么flag可以给g++让它接受code呢? ...
[英]Does it matter whether a compiled C program ends in .o?
对于一个 hello world 程序, hello.c ,如果我将它编译成一个以.o结尾的文件名有关系吗? 或者它只是一个惯例? 例如我应该这样做: 或这个: 在 Linux 环境中 ...
[英]Output 128 bit integer using stream operator
我正在使用 GCC 的 128 位 integer: 但是,如果我尝试使用 stream 运算符访问 output,则会出现编译器错误: 有没有办法允许这样做? Linux、GCC 版本 11.1、x86-64 ...
[英]Why does this simple program compiled with gcc,-mfpmath=387, and an optimization level of -O2 or -O3 produce NaN values?
我有一个执行数值计算的短程序,当某些特定条件成立时,会得到不正确的 NaN 结果。 我看不出这个 NaN 结果是如何产生的。 请注意,我没有使用允许重新排序算术运算的编译器选项,例如-ffath-math 。 问题:我正在寻找 NaN 结果如何产生的解释。 在数学上,计算中没有任何东西会导致除以零 ...
[英]Clang can't find cinttypes after fresh Ubuntu Install
正如标题所说。 这是全新的 Ubuntu 安装,虽然 g++ 编译我的代码没有问题,但 clang++ 告诉我它找不到 cinttypes 是否有任何修复? 编辑:根据要求,这是echo | clang -E -dM -xc++ - | egrep __cplusplus的 output echo ...
[英]compile c file from outside of workspace
我有一个 c 文件,它位于文件夹 /my_test 中,如下所示。 如果我位于“my_test”目录中,我可以成功运行以下命令。 是否可以从不同的目录运行相同的命令? 假设我在 /home/user/new_test 中。 我相信“-I”标志仅适用于 header 文件是否正确? c 文件是否有等 ...
[英]How is the -fprofile-prefix-path option supposed to work?
当为覆盖检测编译代码时(稍后与 lcov 一起使用),我们从基本目录树(我们称之为 A)编译,我们希望在不同的地方生成 .gcda 文件(因为目标目录树是不同的——我们称之为 B)。 因此,编译命令如下所示: gcc -O0 -g --coverage -fprofile-dir=B -c -f ...
[英]How to test malloc failure in C?
我在C中写了一些代码,我需要处理malloc()或realloc()失败的情况。 我知道如果 memory 分配失败,它会返回NULL ,我写了如下内容: 那么问题来了,我该如何测试这部分代码呢? 我的memory在我的机器上手动跑完是不可能的。 所以我想限制它可以使用的最大 memory 大小。 ...
[英]gcc compile error: /usr/bin/ld: gfx.o: relocation R_X86_64_32 against `.rodata' can not be used when making a PIE object; recompile with -fPIE
错误如下: 当我添加-fPIC或-fPIE时,没有任何变化。 我知道gfx.o库可以工作,因为它以前可以工作,并且当我在我的服务器上输入 ssh 时它仍然可以工作。 制作文件如下: 我尝试在 makefile 中使用-fPIE和-fPIC 。我还尝试卸载并重新安装 gcc 和 binutills,但 ...
[英]Prevent immintrin.h from including avx512 headers when compiling without avx512 support
我在没有 AVX512 支持的情况下进行编译,但我注意到 immintrin.h 为 AVX512 拖入了大量的 LOC,例如 我试图检查指定 march 选项是否有帮助,但它似乎没有帮助。 我知道理论上我可以破解我的 gcc 安装并祈祷当我从 avx512 标头中删除所有内容时它会工作,但我正在寻 ...
[英]Unable to run i386-elf-gcc
使用 aur 安装 i386-elf-gcc 时。 安装顺利,构建时没有错误。 我将/usr/local/i386elfgcc/bin添加到我的路径中,我可以运行该命令。 当我运行诸如i386-elf-gcc -g "kernel.cpp" -o "kernel.o"类的简单命令时,出现错误: 重 ...
[英]Does memcpy really a copy of the memory?
我正在试验 memory 在 C 中的处理。 给出以下代码 我在代码执行结束时收到以下错误*** stack smashing detected ***: terminated 更深入我发现msg.data和rcv.data指向相同的 memory 地址 memory 定位当我释放rcv.data ...
[英]GCC not warning of uninitialized local variable
我有一些代码执行求和(如下)。 它是从另一个文件调用的。 但是, sum没有初始化,导致了一个bug但是GCC(v11.1)没有给出编译错误。 我设置了这些标志: -Wall -Wextra -pedantic -march=native -Werror=return-type -Wswitch- ...
[英]GCC- what does "-undefined dynamic_lookup" do?
我正在阅读 RBENV 的开源代码,我遇到了这行代码。 当我使用configure脚本生成 Makefile 并运行make时,我看到了以下内容: 我想知道这些命令中的每一个都在做什么,所以我开始谷歌搜索每个标志。 我找到了很多,但-undefined dynamic_lookup最初难倒了我。 ...
[英]Literal '#' character in C preprocessor macro replacement-list?
有什么方法可以在 C 预处理器宏的替换列表中包含文字“#”字符? C 预处理器替换列表中的“#”字符是执行参数字符串化的运算符,例如- 将导致- 有什么办法可以让'#'作为替换列表中的文字字符,比如- 我尝试了一个宏 - 这是完成工作,但并不比手动输入arg1 # arg2好。 然后我尝试定义一 ...
[英]Why when read and write performed back to back in file opened in rb+ mode behaves not as expected in c language
我在 rb+ 模式下成功打开了一个文件使用两个 fputs 写了两个字符串。 文件指针从使用 fseek 开始的文件移动到 3 个字节。 使用 fgets 成功读取四个字符。 现在,当我尝试使用 fputs 编写第三个字符串时,我无法这样做。 为什么会这样 添加注释掉的代码后,它会按预期工作 ...