gcc相关内容
我得到了一个高度优化的编译的C++目标文件(用g++编译,指定-O3 -g -march=amdfam10 -Wall),带有调试信息。 我正在使用objdump -S "objname"。 不幸的是,交错源代码似乎不起作用,因为有时我看到同一组行(不只是一行)多次重复,而且不只是一个代码行,而是多个代码行,然后是只一条装配线,然后是其他四分之三的源代码行,没有太大意义。 例如,我看
..
我在GCC编译器上使用gcc prog.c -Wall -Wextra -std=gnu11 -pedantic命令编译了以下程序。我想知道,它工作得很好,没有任何警告或错误。 #include int main(void) { for (int i = 0; i == 0; i++) { printf("%d ",
..
我正在使用Eclipse(3.8.1)CDT编写一个C++程序。我在Debian8上使用的是GCC编译器。我还使用了一个用C++编写的名为opendnp3的开源库,它需要uint32_t进行解析,因为它是几个方法调用和构造函数中的参数。 在opendnp对象中,IntelliSense未列出 __uint32_t但是,确实可以解析。 该类型在中定义(
..
我正在为覆盆子配置项目,但我面临一个我无法理解的链接错误。 上下文: 实际上,我交叉编译了Qt,一切都很正常。 现在,我正在尝试让OpenCV也能在我的Qt应用程序中进行图像处理。 我没有交叉编译OpenCV,而是与apt一起安装了它,并在~/raspi/sysroot中同步了我的目标sysroot。 为了获得raspi摄像头控制,我使用了MMAL库(位于rpi上的/opt/vc/li
..
我花了相当长的时间试图找到fork()函数的源代码。我知道fork()完成的大部分工作都是由do_fork()完成的,这可以在kernel/fork.c中找到。但是,我希望看到的是fork()函数的源代码。 你知道在哪里可以找到它吗?我翻了GCC和LINUX的源码,还是没找到。 编辑:我正在尝试找到我的系统正在使用的确切实现。正如在注释和Link中提到的,它显然位于glibc的某个包装
..
我正在尝试在Conda环境中编译一些代码,在该环境中我 以前安装了编译器包gcc_linux-64。 但是,即使在停用并重新激活环境之后, gcc仍为/usr/bin/gcc。 我应该怎么做才能让Conda像预期的那样工作,即。使用该工具 我安装了吗?就像git之类的其他软件一样。 如有任何帮助,我们将不胜感激! 推荐答案 如果您这样做: export CONDA_
..
我的程序在添加选项-fSTACK-CHECK和-FSTACK-PROTECTOR时崩溃。回溯调用__STACK_CHK_FAIL。 那么我怎么知道问题出在哪里呢?-fstack-check真正检查的是什么? 关于GCC的信息似乎太多了,找不到答案。 推荐答案 检查汇编程序后。 我认为-fSTACK-CHECK会将代码WRITE 0添加到堆栈指针的偏移量中,所以为了测试程序是否访问
..
我的导游手册上写着: 在内联汇编中,已清除的寄存器列表用于告知 我们正在使用的寄存器的编译器(这样它就可以在 那个)。 我完全不明白,为什么编译器要知道这个?让这些登记簿保持原样有什么问题?他们是否打算在汇编代码后备份和还原它们。 希望有人能提供一个例子,因为我花了几个小时阅读有关损坏的寄存器列表,但没有明确的答案。 推荐答案 未能告知编译器您所修改的寄存器的问题与您
..
在MatLab上,我试图运行 mex file.c 但我收到了警告和错误消息。无论如何,我认为问题在于警告所说的: 警告:您正在使用GCC版本‘9.3.0’。GCC的版本不是 支持。MEX当前支持的版本是‘4.9.x’。为. 当前支持的编译器列表,请参阅: http://www.mathworks.com/support/compilers/current_release 。 然
..
我在Solaris 10上使用gcc构建make程序,得到以下信息: gcc: unrecognized option `-rdynamic' 查看gcc文档中的rdynamic后,得到如下解释: -rdynamic Pass the flag -export-dynamic to the ELF linker, on targets that support it. This i
..
问题: 我希望能够在C代码中放置不同的可能唯一或重复的标记,这样我就可以在GDB中使用它们来创建断点。 相似工作: 断点到行号:与源行上的断点的主要区别在于,如果以某种方式修改标记之前的代码,从而导致或多或少的行,则对标记的引用在语义上仍然是正确的,而对源行的引用则不会。 标签:我来自上一个问题How to tell gcc to keep my unused labels?,其
..
Gcc6-英特尔酷睿2二人组。 编译标志:“-3月=Native-O3”(-S) 我正在编译一个简单的程序,并要求提供汇编输出: 代码 movq 8(%rsi), %rdi call _atoi movq 16(%rbp), %rdi movl %eax, %ebx call _atof pxor %xmm1, %xmm1 movl $1
..
我刚刚使用编译器选项“-fRecords-GCC-Switches”编译了代码,以查看编译器自动选择了哪些选项。现在我可以看到.GCC.command.line部分中的选项。有几个看似合理的编译器选项,但也有一个我找不到任何文档。-auxbase-strip png.o是什么意思。显然,它与png.o有关,但它到底是做什么的? 推荐答案 谷歌搜索shows: Hei Chan:
..
以下是我的测试代码: #include static inline void foo(int a){ printf("%x ", a); } int main(void){ foo(0x1234); return 0; } 我觉得GCC应该意识到a是文字整数,并优化成这样的代码: puts("1234"); 但我得到了以
..
可以使用GCC编译带有特定编译器标志的代码文件的一段吗?例如,假设我有一些正在测试的函数。我希望这些函数严格遵守标准,所以我想用--Pedtic标志来编译它们。但是,执行测试的代码在编译时会发出很多警告。有没有办法只编译那些特定的函数,用--Pedtic? 或者,假设我有一个精心编写但极其昂贵的函数,它需要尽可能快地运行。如何才能只用-Ofast编译该函数(以及其他几个函数),而用-O2或-
..
我正在阅读《计算机系统:程序员的视角》(CS:APP3E),下面的代码是本书中的一个示例: long call_proc() { long x1 = 1; int x2 = 2; short x3 = 3; char x4 = 4; proc(x1, &x1, x2, &x2, x3, &x3, x4, &x4); return (x1
..
我想做一个非常小的编译可执行文件,它是用C编写的,但我能设法得到的最小可执行文件是67KB。我用的是MinGW。 我已尝试不使用任何头文件,编译时没有错误: //no header void main() { write(1, "Hello world!", 12); } 如果我构建并运行此程序,GCC没有显示错误,但它也是67KB。 推荐答案 我刚刚在x86_64Linu
..
在写关于编译器必须如何处理volatile的答案时,我相信我可能无意中发现了GCC的错误,希望有人在我报告它之前进行验证。 我写了一个简单的函数,如下所示: int foo (int a, int b, int c) { b = a + 1; c = b + 1; a = c + 1; return a; } 如果没有优化,这会导致大量毫无意义的数据来回移动。通过优
..
我正在尝试用c编写一个简单的边缘检测程序。我使用的是Red Hat Enterprise Linux Server7.7(Maipo)和GCC 4.8.5版。 这是代码的开始: #include #define size 200 int _tmain(int argc, _TCHAR* argv[]) { char filein[size] = "./i
..
我用C语言实现了bubble sort,在测试它的性能时,我注意到-O3标志使它的运行速度比根本没有标志还要慢!同时,-O2使其运行速度大大快于预期。 未进行优化: time ./sort 30000 ./sort 30000 1.82s user 0.00s system 99% cpu 1.816 total -O2: time ./sort 30000 ./sor
..