哪个版本的gcc支持最高级优化级别?

我在gcc的文档中找到了最高级的选项。 但是当我使用这个级别编译代码时,gcc告诉我不能识别这个标志。 我使用的是GCC4.5.2,它是最新发布的gcc。 那么哪个版本的gcc支持这个级别呢? Tnanks.似乎表明这将在4.6发行版系列中提供(目前还没有稳定的发行版)。或者,您可以尝试从他们的SVN repo或其中一个镜像构建。Ofast标志是GCC 4.6中的一个新功能—请参阅。为了将来的参考,您所查看的文档是针对当前开发版本的。如果您按照主页上的“手册”链接进行操作,您将通过位于底部的“当

Gcc 我是否正确使用libtool?

我正在运行Linux,Ubuntu 10.04 这不是我第一次尝试使用自动工具。我做了很多研究,并遵循了很多教程:以下是我想做的,我尝试过的,以及我面临的问题 目标: 使用libtool、autoconf和automake编译(然后交叉编译,但这将是另一项工作)我自己的C代码库 我尝试了什么以及我在哪里: 库名称为FXPLib,包名称为libfxplib-0.1 我的项目文件夹是: Makefile.am (the only one) include include/fxplib.h (m

&引用;。。。can';“我不知道……的架构类型。”;使用gcc编译Python C扩展时出现问题

我刚刚从SnowLeopard升级到Lion,我不得不更新的一个旧的python c扩展不想正确编译。我真的不知道在这里该怎么办。有谁能帮我把它编译好吗?在《雪豹》中,一切都很好 Home:folder Me$ python setup.py build running build running build_ext building 'ccookies' extension gcc -fno-strict-aliasing -fno-common -dynamic -arch ppc -arc

gcc和铿锵警告/错误标志

在哪里可以找到可以在clang和gcc中设置的所有可用警告和错误标志的列表?我查看了他们各自的文档站点,什么都找不到。GCC:。经典:mangcc。clang的手册页尚未填充,但由于它模仿了gcc的行为,许多gcc的-W选项也适用于clang。如果问题只是找到所有可能的gcc诊断(错误、警告等)消息的列表,您可以使用本地化实用程序的消息目录。使用GCC源代码tar ball,查看GCC/po/或libcpp/po/或libstdc++-v3/po/等 如果您只是询问用于获取这些消息的选项,请按照

建筑GCC需要GMP 4.2+;,MPFR 2.3.1+;mpc0.8.0+;

我从下载了GCC 4.5,但当我尝试设置/构建时,出现以下错误: Linux:>~/shared_scripts/bin/gcc/gcc-4.5.0 1040> /x/home/prakash_satya/shared_scripts/bin/gcc/gcc-4.5.0/configure CC="gcc -m64" --prefix=/x/home/prakash_satya/shared_scripts/bin/gcc/gcc-4.5.0 --with-gmp-lib=/usr/

Gcc 哪种C/C++;编译程序?

我一直在用gcc编译我的C/C++代码,但直到最近我才意识到它不是唯一的免费编译器 我一直在玩弄切换,因为其他一些编译器,特别是clang,似乎表现出了很大的潜力。对于我的编译器,我的标准是立即遵守C99标准,随着C99标准变得越来越普遍,标准也越来越多,而且是免费的、开源的,并且尽可能以最佳方式编译我的代码。快速编译对我来说并不重要,但总是一个不错的选择。也就是说,如果有任何编译器看起来很快就会超过gcc,我想知道为了学习,现在是否值得切换 我将主要使用它来编译C++代码,所以这对我来说是优先

Gcc 如何防止Qt Creator为同一个库生成多个.so文件?

我正在使用Qt Creator生成一个库,虽然它可以工作,但它生成了文件的四个版本,据我所知,它们彼此相同,只是它们链接在一起。这些文件的标签如下:libFile.so、libFile.so.1、libFile.so.1.0和libFile.so.1.0。我只想保留libFile.so文件。如何防止生成其他文件并将其自动链接在一起?只有一个共享对象,其余的只是它的一部分。这就是共享对象命名在类Unix系统中的工作方式,以支持向后兼容性。在维基百科上阅读更多信息。qmake为共享库配置生成三个目标

使用本地brew公式安装跨平台gcc编译器

我需要安装生成ELF的gcc交叉编译器,我发现这个站点- 它指向了一个用于home-brew-gcc_cross_编译器()的github,并将它们放入了home-brew公式中,但我不确定如何确切地将它们放入公式中 然后,如何将github代码下载到家用brew公式中以调用brew安装i386 elf gcc?下载的rb文件的存储目录是/usr/local/Library/Formula,然后运行brew命令进行安装 日志文件可在/Users/smcho/Library/Logs/Homebr

确定使用gcc编译时设置了什么定义

如果我想查看用gcc编译的可执行文件,以确定是否有任何变量定义供#define使用,是否有人知道要使用的命令 谢谢,您是否试图找出在构建它时定义了哪些值,或者编译它的源代码中存在哪些可能的定义(是否定义了值)?(注意,我认为这两种方法都不可能,但至少有一种是可能的。)#define宏是由预处理器扩展的,编译时在源代码中没有它们的踪迹,因此在可执行代码中没有它的踪迹。使用最新版本的GCC,您可能会在调试信息中记录宏,这取决于它是如何编译的。因此,基本上,定义是在make中设置的。e、 g给定mak

Gcc gfortran:未找到架构x86_64的符号

从一个星期以来,我一直在尝试编译一个用F90和C编写的代码。我一直收到一个未定义的符号错误。我将尽可能多地提供信息,但该软件包包含数百个文件,因此很难提供所有细节。这是生成文件 include paths.mk include include.mk.$(OPT) #------------------------------------------------------------------------------------------# #----------------------

Gcc objdump——汇编代码的矮人不列出函数

我编写了简单的x86汇编例程: $ cat asm.s .global foo .section .text foo: nop ret 并用 $ gcc -c -g asm.s -o asm.o 但是当我执行objdump--dwarf asm.o时,它不会显示任何有关函数foo的信息。看起来,gcc没有创建关于foo的

Gcc 使用clang时,std::中没有名为value的成员是可转换的

在使用约束构造函数的非常简单的情况下,测试参数的可转换性时,会在clang中产生错误,但在g++中不会产生错误: #包括 模板 constexpr bool convertable=std::is_convertable::value&&std::is_convertable::value; 模板 结构A { 模板 A(S常数&){} }; int main() { A s=1.0; } 也许这个问题与 clang给出的错误如下: error: no member named 'value'

Gcc 奇怪的Linaro mips编译器程序集输出

为了创建汇编代码,我调用了mipsel-openwrt-linux-uclibc-gcc编译器(Linaro-gcc 4.8-2014.04 r49389),其标志为-S。 这将生成如下所示的汇编代码: .section .mdebug.abi32 .previous .gnu_attribute 4, 3 .abicalls .option pic0 .text $Ltext0:

Gcc mips帧指针($fp)全局指针

MIPS帧指针$fp占用一个字4个字节,但gcc决定在主函数的堆栈帧中分配的其他4个字节有什么用途, 是全局指针$gp吗?在MIPS体系结构中,堆栈帧的大小必须是8的倍数。Kane&Heinrich在MIPS RISC体系结构的p.D-20中对其进行了描述

Gcc 我的版本有什么问题

我不熟悉汇编语言。似乎gcc不像MSVC那样在intrin.h中有_bitstandset函数,所以我实现了一个新的函数。这一个在linux中运行良好,但在winVista机器中,它与mingw出现错误,代码是: inline unsigned char _bittestandset(unsigned long * a, unsigned long b) { __asm__ ( "bts %1, %[b]" : "=g"(*a) : [b]"Ir"

Gcc 如何手动安装mingw?

当我在mingw的网站上看到gcc版本4时,我设法下载并安装了新的软件包,但结果是在运行gcc并给出无意义的代码时出现了很多错误(create process error),现在我不得不回滚到原始的自动安装版本 我的问题是:有没有人成功地手动安装了mingw(使用gcc v4?我真的不知道“手动”是什么意思,我也不知道“sf.net”是什么。如果要安装MinGW,请从最新版本4.4.1下载并运行安装程序。您可以安装多个版本-我通常一次安装两个或更多版本 如果这不是您要问的问题,请澄清您的问题。手

Gcc 如何为共享库设置动态链接器路径?

我想编译一个带有.interp段的共享库 #include <stdio.h> int foo(int argc, char** argv) { printf("Hello, world!\n"); return 0; } 我最终没有一个INTERP段,就好像我从未通过--dynamic linker=blah选项一样。使用readelf-l测试进行检查。因此。构建可执行文件时,链接器正确处理该选项,并在程序头中放置一个INTERP段。如何使其也适用于共享库?

NginX 0.9.6令人沮丧的编译问题Ubuntu/GCC 4.6.1

今天,我一直在设置额外的VPS克隆,在使用最新的nginx开发版本(0.9.6)时遇到了一个奇怪且令人沮丧的编译时错误 我正在运行Ubuntu10.04.2LTSx86_64,但是,我已经将GCC升级到了4.6.1/configure运行时没有错误,但运行make-j4时出现以下错误: gcc-c-pipe-O-W-Wall-Wpointer-arith-Wno未使用的参数-Wunused函数-Wunused变量-Wunused值-Werror-g-I src/core-I src/event-

gcc/g++;“给我一个错误”;CreateProcess:没有这样的文件或目录";

-编辑-路径似乎有问题,无法找到其bin/文件夹。即使g++在这个bin目录中 我正试图在我的应用程序中在windows上启动g++程序,但出现以下错误。我怎么修理它?旁注:我可以在提示符下执行g++dummy.cpp,没有问题 ARGS>代码> -o文件.EX-XC++() stdout : CreateProcess: No such file or directory -编辑-我的代码是 #include <windows.h> #include <stdio.h&

Gcc 如何解决:警告:不保护局部变量:可变长度缓冲区

生成我的项目时,将生成以下警告: 警告:不保护局部变量:可变长度缓冲区 我已经启用了堆栈保护器,并且已经指定了大小,但是这种情况仍然存在 -fstack protector all-Wall-Wstack protector-param ssp buffer size=2 您能建议一种在不关闭警告标志的情况下解决警告的方法吗?谢谢我相信看看哪段代码会产生这些漏洞会很有帮助。事实上,我不允许透露这些代码。但是,警告指向几个功能的开头,而不是功能中的确切部分:(我会说编译器查找堆栈上分配的空间,在某

使用gcc隐藏特定导出符号

我需要隐藏一个特定的导出符号。 也就是“Uudivdi3” 但我不知道怎么做 我有一个脚本,可以在构建之后删除条带符号。 然后,我必须将二进制文件传递给第三方工具(包装器),该工具会抱怨这个导出的符号。 任何帮助都将不胜感激。请查看此讨论: 尝试strip-N\uudivdi3 objfile

我可以告诉gcc/ld排除未使用的模块吗?

我想知道我是否可以告诉gcc/ld忽略输出文件中未使用的模块 假设我有模块a.c,b.c和c.ca.c和b.c相互依赖,其中一个包含main(),并且由于任何原因,未引用c.c的任何部分 gcc -c a.c gcc -c b.c gcc -c c.c 如果我将这些内容捆绑到一个库中,那么c.c中的任何代码都不会出现在输出中: ar rcs abc.a a.o b.o c.o gcc abc.a 但是如果我将.o文件直接提供给gcc,那么c.crespc.o gcc a.o b.o c.o

为什么在malloc时gcc中出现分段错误?

我写了一段代码来实现哈希函数。当将第9个元素“a12a”添加到列表中时,问题出现了,gdb报告如下,似乎问题发生在malloc应用内存的过程中。但在添加第9个元素之前,我曾经在添加第6个元素“ad”时成功地应用了malloc的一次内存,为什么第二次应用内存失败 Breakpoint 1, insert (p=0x3d2d10, value=0x4030e8 "a12a") at hashop.c:39 39 id = hash(value); (gdb) n 40

为什么gcc在main的开头推送%rbx?

gcc的最新版本正在生成对我来说毫无意义的程序集。我编译代码时没有使用任何优化;但是,这段代码的某些部分没有意义,即使没有优化 以下是C源代码: #include <stdio.h> int main() { int a = 1324; int b = 5657; int difference = 9876; int printf_answer = 2221; difference = a - b; p

Gcc cygwin上的cppcms,尝试编译时生成错误

cpp: 当我试图与cygwin合作时,我遇到了以下错误: LIBS=-l/home/C5021090/cppcms/cppcms -l/home/C5021090/cppcms/booster all: hello hello: hello.cpp $(CXX) -O2 -Wall -g hello.cpp -o hello ${LIBS} clean: rm -fr hello hello.exe cppcms_rundir 同样的东西在UbuntuLinux上也能正常工作,我不

Gcc 为什么gdb会报告:“;未找到调试符号";?

我试图构建一个调试版本的解压、编辑的makefile,但gdb仍然说“找不到调试符号”。生成输出的示例: gcc -c -O3 -Wall -DASM_CRC -g -I. -Ibzip2 -DUNIX -DFUNZIP -o cryptf.o crypt.c 也许这里的国旗顺序有问题?这不重要。你确定二进制文件没有被剥离吗?再次检查Makefile。很可能正在调用strip。是的,准确地说,最后一行末尾有-s,谢谢。如果要调试,不建议使用-O3。这里的gdb可能更详细。一个bug报告不会

Gcc 将赋值的左侧变量与右侧函数调用的返回值相匹配

对于函数func()中的以下语句,我试图找出指向malloc内存区域的变量名(在示例中为“dictionary”) Void func() { uint64_t * dictionary = (uint64_t *) malloc ( sizeof(uint64_t) * 128 ); } 插入指令的malloc()可以记录分配的开始地址和大小。但是,如果不知道将要分配给的变量“dictionary”,那么编译器端的任何功能都可以帮助解决此问题,而无需修改编译器以插入此类分配语句 我

GCC不编译程序 我想编译一个非常简单的C++程序。在第一台机器上,编译过程运行良好,程序也运行良好。但是,在第二台linux机器上,我有一些库没有发现问题。编译过程如下所示: gcc -o WebPageCrawler -lawesomium-1-7 -Wall WebPageCrawler.cc /tmp/ccoLVzvo.o: In function `main': WebPageCrawler.cc:(.text+0x28): undefined reference to `std::cout' WebPageCrawler.cc:(.text+0x2d): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)' ...even more errors...

我很感激任何帮助。Thx 更新: 使用g++时,我得到: g++ -o WebPageCrawler -lawesomium-1-7 -Wall WebPageCrawler.cc Unable to exec g++.real: No such file or directory 然而,在另一台机器上,我使用了gcc而不是g++,并且在那里工作得很好 更新2: 好了,现在我至少可以解决STDLIB的问题了。为此,我进一步安装了: apt-get install build-essential

Gcc 如何使用Workbench3.0(vxworks 6.6 IDE)下的Eigen库修复错误的堆栈对齐

我正在使用Workbench3.0(vxworks 6.6)下的特征库(3.2.0)。此发行版中的编译器是GCC 4.1.2版 语言:c++;操作系统:winXP 问题代码如下所示: Eigen::Matrix3d mOrigin; /* initial mOrigin */ ... Eigen::Quaterniond qOrigin(mOrigin); 我调试了程序,发现当它运行时: Eigen::Quaterniond qOrigin(mOrigin); 它显示断言并打印: 断言失败:

Gcc 不带glob_NOCHECK减速的glob

我有一个test main.cpp(不只是用于测试的真实项目) 印刷品: real 0m4.759s user 0m4.755s sys 0m0.000s real 0m40.516s user 0m7.357s sys 0m33.145s 但是当我在没有GLOB_NOCHECK标志的情况下构建时,时间会增加10倍 $ time ./a.out 印刷品: real 0m4.759s user 0m4.755s sys 0m0.00

Gcc 为ARM工具链编译库(buildroot)

我正在使用buildroot的工具链为ARM交叉编译应用程序。但是,某些应用程序需要未针对该工具链编译的库。我的主机工具链上有这些库,如-ljack、lfftw等 我需要知道,如果我得到了所需包的tarball,那么我如何配置它们,以便由armgcc编译库,并将头/库复制到buildroot的/usr和/include 通过这种方式,我应该能够通过buildroot的工具链访问这些库 谢谢,您需要将它们集成到Buildroot中 以fftw为例,在这种特殊情况下,fftw在Buildroot中已

gcc链接器空载指令的IAR等式是什么?

gcc链接器有一个名为NOLOAD的指令,该指令允许链接节,但不在最终输出中加载。此指令放置在链接器分散文件中(请参见下面的示例)。IAR Workbench是否有等效的链接器指令?我目前正在为ARM V7.20.2使用IAR嵌入式工作台 MEMORY { rom (rx) : ORIGIN = 0x00000000, LENGTH = 0x00010000 ram (rwx) : ORIGIN = 0x10000000, LENGTH = 0x00008000 } SECTI

Gcc 从静态可执行文件中剥离未使用的库函数/死代码

我正在使用GCCARM-none-eabi-g++(4.8.3)为ARM Cortex-M0 mcu编译代码。 一切都很好,但我注意到,当我包括并使用cstdlib中的任何函数时,该文件中的所有函数也都包括在内。如何摆脱它们 我只调用了malloc()和free(),但生成的ELF也有system()和isatty()机器代码 mcu只有32kB的闪存,因此~0.7kB的镇流器很重要,尤其是在其他报头不断出现这种情况时 现在我使用-ffunction sections-fdata section

链接时未考虑gcc归档?

gcc链接器链接归档文件还是对象文件(或两者)是否有区别? 背景: 在嵌入式项目中,ISR(当然没有被任何其他源代码引用)作为文件中的唯一函数。此文件被编译为目标文件,然后放入存档文件。 其他文件中的其他函数被编译为单独的目标文件。 无论链接器使用的是ISR对象文件还是ISR存档文件,二进制文件都是毫无怨言地构建的,并且在目标系统上运行,没有例外。 但是,如果使用存档文件,则不会链接ISR 另外,如果同一文件中有任何其他引用(例如,某个其他文件中某个其他函数使用的变量),则该引用将被完全链接。

Gcc 如何在gnu汇编程序中进行任意文本替换

有没有一种方法可以像#定义b a(%rip)那样,将b的每个实例都替换为a(%rip),这样movl$0,a(%rip)就可以缩写为movl$0,b?我试过b=a(%rip)和宏b;a(%rip);。endm但两者都不起作用。任何帮助都将不胜感激。您可以使用C预处理器对文件进行预处理,然后使用#define b a(%rip)。要使用C预处理器对文件进行预处理,请使用文件后缀.S而不是.S,并按如下方式进行组装: a:.int 0 movl $0,a(%rip) 请注意,像这样的定义对读者来说

如何向GCC请求配置的路径分隔符?

我想使用环境变量CPATH用GCC编译我的应用程序。GCC手册指出,分配给CPATH的路径列表必须用特殊字符PATH_分隔符分隔,该分隔符是在构建GCC时定义的。路径_分隔符通常为“;”在Windows和其他位置的“:”上 因为我想在多个平台上构建代码,所以我需要知道makefile中的字符路径分隔符(以便正确连接分配给CPATH的路径) 我可以问一下我使用的GCC,它是用哪个值作为路径分隔符构建的吗 (当然,我也可以尝试在GNU make中检测主机操作系统,并从中推测合适的路径分隔符,但这并不

Gcc 在Cygwin中运行make会。。。没有什么?

我正试图通过Cygwin在Windows上本地构建gcc-7.1.0(我已经安装了gcc 5.4.0并开始运行)。我下载了tar,按照规定在自己的目录中运行了configure程序,产生了: ~/build-gcc $ ll total 609 -rw-r--r-- 1 Barry None 31021 Aug 12 09:08 config.log -rwxr-xr-x 1 Barry None 33630 Aug 12 09:08 config.status -rw-r--r-- 1 B

Gcc 如何更改二进制(Mach-O)文件的字符串?

我想更改二进制文件中的字符串(新长度)。 使用对象文件(.o)更改字符串->编译->可以运行 但可执行文件无法运行在不破坏对象文件的情况下,无法移动对象文件中的字段。更改源文件中的字符串并重新编译。我不这样认为,可以更改可执行文件中的字符串,但它非常复杂。如果不破坏目标文件,则无法移动目标文件中的字段。更改源文件中的字符串并重新编译。我不这么认为,可以更改可执行文件中的字符串,但它非常复杂

Gcc LPC4088 Thumb的校验和值?

在(第876页)中,我们可以看到LPC4088微控制器有一个非常特殊的启动程序: 这看起来完全是胡说八道,我需要有人帮我把事情弄清楚。。。在ARM的世界里,我无数次听到向量表是这样放置的: reset: b _start undefined: b undefined software_interrupt: b software_interrupt prefetch_abort: b prefetch_abort

有没有办法列出在优化级别(比如-O2)启用的所有GCC优化?

我目前正在使用GCC4.7.4构建一个小型测试应用程序 我正在尝试一些优化选项。因此,我的问题如下: 有没有一种方法可以列出在给定优化级别(比如-O2)下启用的所有GCC优化?好吧,我确实找到了答案。这个命令对我起了作用 gcc -Q -O2 --help=optimizers

GCC-使用march手动切换每个指令集,而不同时切换多个指令集?

假设我有一个计划在使用SSE2的计算机上运行的代码,我希望编译器为SSE2生成代码。我可以看看GCC,看到奔腾m有SSE2和MMX,所以我可以做march=Pentium-m。如何使用类似于-march=sse3-march=mmx的东西来切换每个指令集?在列表的更下方,-msseetc msse允许您手动调用编译器的SSE内部函数。如果你不这样做,一切都不会改变。

Gcc Ubuntu 18.04:找不到CMAKE_C_编译器

我正在尝试从Google安装gtest,但即使我安装了gcc和g++,我还是因为某种原因出现了这个错误。我使用的是Ubuntu 18.04 64位。我和VisualStudio没有任何关系 -- The C compiler identification is unknown CMake Error at CMakeLists.txt:47 (project): No CMAKE_C_COMPILER could be found. Tell CMake where to find t

GCC内置功能-2003年与2019年

在Brian Gough的《GCC简介》一书的第14页,作者想展示一个链接器错误,因为没有向GCC提供libm库,函数sqrt的代码就在这里: $ gcc -Wall calc.c -o calc /tmp/ccbR6Ojm.o: In function ‘main’: /tmp/ccbR6Ojm.o(.text+0x19): undefined reference to ‘sqrt’ 文件calc.c(调用函数sqrt)如下所示: 我使用ldd calc发现libm.so共享库在运行时没有被

gcc中“始终”和“从不”内联的例外情况是什么?

Andrei Alexandrescu在一篇文章中提到,当定义并使用“始终内联”宏时,gcc并不总是内联的,反之亦然。我找不到太多关于在中发生的场景的文档,所以有人告诉我 我找不到太多关于在中发生的场景的文档,所以有人告诉我 你能给出一个代码示例吗 将函数作为函数指针传递,并从不同的翻译单元调用它(即使是从同一翻译单元调用,假设优化为-O0或-Os,它的大小更好,或者更像是…“幸运”)将有效地禁止内联函数的可能性: cat << EOF > main.c __attribute

Gcc 如何将文件名作为C++;在介子构建中使用的编译参数?

编译源文件src.cpp时,我需要将编译器标志-D_uudebug_FILE=“src.cpp”传递给g++。如何在介子中实现这一点?我知道cpp_args内置选项,但不知道如何在其中传递文件名 我知道,在make文件中,您可以编写类似于下面的代码来实现这一点:我正在寻找一种在介子构建中复制这一点的方法 test.o : test.cpp g++ -D__MY_FILE__=\"$<\" -c $< -o $@ test.o:test.cpp g++-

gcc/clang编译器选项中的-f和-m代表什么

摘要:在gcc和clang编译器选项中的-f和-m代表什么 详细信息: 当使用clang时,我注意到许多编译器选项以-f开头,而其他编译器选项则以-m开头。我认为这是有历史原因的,我很好奇,所以我查看了gcc帮助,看到了以下内容: 以-g、-f、-m、-O、-W或--param开头的选项将自动删除 传递给gcc调用的各个子进程。为了 将其他选项传递给这些进程-W选项必须 被使用 如果让我猜的话,我想-f可能代表前端,-m代表机器。但我很想听到一个更全面的答案,可能包括gcc调用的其他子流程。我没

Gcc switch语句的位测试代码生成

GCC选项-fno bit tests禁用的switch语句的位测试是什么 我正在查看并发现此选项是新引入的。在同一文档中,在提到的-fbit tests@ssbssa之前有一个示例代码,我想知道示例中的C代码将如何组装。您知道吗?

上一页   1   2   3   4   5    6  ... 下一页 最后一页 共 162 页