gcc相关内容

如何使用objump将源代码交织到高度优化的目标文件中?

我得到了一个高度优化的编译的C++目标文件(用g++编译,指定-O3 -g -march=amdfam10 -Wall),带有调试信息。 我正在使用objdump -S "objname"。 不幸的是,交错源代码似乎不起作用,因为有时我看到同一组行(不只是一行)多次重复,而且不只是一个代码行,而是多个代码行,然后是只一条装配线,然后是其他四分之三的源代码行,没有太大意义。 例如,我看 ..
发布时间:2022-07-21 19:35:07 C/C++开发

在C++中重新声明for循环内的变量

我在GCC编译器上使用gcc prog.c -Wall -Wextra -std=gnu11 -pedantic命令编译了以下程序。我想知道,它工作得很好,没有任何警告或错误。 #include int main(void) { for (int i = 0; i == 0; i++) { printf("%d ", ..
发布时间:2022-07-19 15:10:25 其他开发

无法解析类型uint32_t&;

我正在使用Eclipse(3.8.1)CDT编写一个C++程序。我在Debian8上使用的是GCC编译器。我还使用了一个用C++编写的名为opendnp3的开源库,它需要uint32_t进行解析,因为它是几个方法调用和构造函数中的参数。 在opendnp对象中,IntelliSense未列出 __uint32_t但是,确实可以解析。 该类型在中定义( ..
发布时间:2022-07-18 13:41:36 Java开发

交叉编译GLIBCXX版本链接错误

我正在为覆盆子配置项目,但我面临一个我无法理解的链接错误。 上下文: 实际上,我交叉编译了Qt,一切都很正常。 现在,我正在尝试让OpenCV也能在我的Qt应用程序中进行图像处理。 我没有交叉编译OpenCV,而是与apt一起安装了它,并在~/raspi/sysroot中同步了我的目标sysroot。 为了获得raspi摄像头控制,我使用了MMAL库(位于rpi上的/opt/vc/li ..
发布时间:2022-07-14 21:31:03 其他开发

Linux中fork()调用的源在哪里?

我花了相当长的时间试图找到fork()函数的源代码。我知道fork()完成的大部分工作都是由do_fork()完成的,这可以在kernel/fork.c中找到。但是,我希望看到的是fork()函数的源代码。 你知道在哪里可以找到它吗?我翻了GCC和LINUX的源码,还是没找到。 编辑:我正在尝试找到我的系统正在使用的确切实现。正如在注释和Link中提到的,它显然位于glibc的某个包装 ..
发布时间:2022-06-30 22:20:41 服务器开发

康达GCC不取代系统GCC

我正在尝试在Conda环境中编译一些代码,在该环境中我 以前安装了编译器包gcc_linux-64。 但是,即使在停用并重新激活环境之后, gcc仍为/usr/bin/gcc。 我应该怎么做才能让Conda像预期的那样工作,即。使用该工具 我安装了吗?就像git之类的其他软件一样。 如有任何帮助,我们将不胜感激! 推荐答案 如果您这样做: export CONDA_ ..
发布时间:2022-06-30 21:30:37 其他开发

GCC选项-fSTACK-CHECK到底是如何工作的?

我的程序在添加选项-fSTACK-CHECK和-FSTACK-PROTECTOR时崩溃。回溯调用__STACK_CHK_FAIL。 那么我怎么知道问题出在哪里呢?-fstack-check真正检查的是什么? 关于GCC的信息似乎太多了,找不到答案。 推荐答案 检查汇编程序后。 我认为-fSTACK-CHECK会将代码WRITE 0添加到堆栈指针的偏移量中,所以为了测试程序是否访问 ..
发布时间:2022-06-26 12:07:00 其他开发

为什么我们需要在内联汇编中删除寄存器列表?

我的导游手册上写着: 在内联汇编中,已清除的寄存器列表用于告知 我们正在使用的寄存器的编译器(这样它就可以在 那个)。 我完全不明白,为什么编译器要知道这个?让这些登记簿保持原样有什么问题?他们是否打算在汇编代码后备份和还原它们。 希望有人能提供一个例子,因为我花了几个小时阅读有关损坏的寄存器列表,但没有明确的答案。 推荐答案 未能告知编译器您所修改的寄存器的问题与您 ..
发布时间:2022-06-23 17:35:04 其他开发

我需要在ubuntu 20.04|MatLab Mex上安装gcc4.9

在MatLab上,我试图运行 mex file.c 但我收到了警告和错误消息。无论如何,我认为问题在于警告所说的: 警告:您正在使用GCC版本‘9.3.0’。GCC的版本不是 支持。MEX当前支持的版本是‘4.9.x’。为. 当前支持的编译器列表,请参阅: http://www.mathworks.com/support/compilers/current_release 。 然 ..
发布时间:2022-06-16 14:32:51 其他开发

如何标记C源文件中的位置,以供以后的断点定义使用?

问题: 我希望能够在C代码中放置不同的可能唯一或重复的标记,这样我就可以在GDB中使用它们来创建断点。 相似工作: 断点到行号:与源行上的断点的主要区别在于,如果以某种方式修改标记之前的代码,从而导致或多或少的行,则对标记的引用在语义上仍然是正确的,而对源行的引用则不会。 标签:我来自上一个问题How to tell gcc to keep my unused labels?,其 ..
发布时间:2022-06-14 12:18:19 其他开发

";编译器选项";-aux base-strid有什么作用?

我刚刚使用编译器选项“-fRecords-GCC-Switches”编译了代码,以查看编译器自动选择了哪些选项。现在我可以看到.GCC.command.line部分中的选项。有几个看似合理的编译器选项,但也有一个我找不到任何文档。-auxbase-strip png.o是什么意思。显然,它与png.o有关,但它到底是做什么的? 推荐答案 谷歌搜索shows: Hei Chan: ..
发布时间:2022-06-12 09:15:03 其他开发

可以使用GCC来编译带有特定编译器标志的代码文件的一段吗?

可以使用GCC编译带有特定编译器标志的代码文件的一段吗?例如,假设我有一些正在测试的函数。我希望这些函数严格遵守标准,所以我想用--Pedtic标志来编译它们。但是,执行测试的代码在编译时会发出很多警告。有没有办法只编译那些特定的函数,用--Pedtic? 或者,假设我有一个精心编写但极其昂贵的函数,它需要尽可能快地运行。如何才能只用-Ofast编译该函数(以及其他几个函数),而用-O2或- ..
发布时间:2022-06-11 23:51:36 C/C++开发

为什么我能用GCC做的最小编译可执行文件是67KB?

我想做一个非常小的编译可执行文件,它是用C编写的,但我能设法得到的最小可执行文件是67KB。我用的是MinGW。 我已尝试不使用任何头文件,编译时没有错误: //no header void main() { write(1, "Hello world!", 12); } 如果我构建并运行此程序,GCC没有显示错误,但它也是67KB。 推荐答案 我刚刚在x86_64Linu ..
发布时间:2022-06-11 23:31:13 其他开发

GCC 11.1中对易失性的非一致性优化

在写关于编译器必须如何处理volatile的答案时,我相信我可能无意中发现了GCC的错误,希望有人在我报告它之前进行验证。 我写了一个简单的函数,如下所示: int foo (int a, int b, int c) { b = a + 1; c = b + 1; a = c + 1; return a; } 如果没有优化,这会导致大量毫无意义的数据来回移动。通过优 ..
发布时间:2022-06-11 23:28:01 其他开发