草庐IT

c++ - GCC 消耗太多内存!!图形工具

编译时graph-toolgcc编译器消耗了超过7Gb的内存,并且在消耗越来越多之后什么也没有发生,我被迫停止编译。我试图嵌入acompilersuffix:CFLAGS="$CFLAGS--paramggc-min-expand=0--paramggc-min-heapsize=8192"但我无法将它带入./configure过程。有人知道这个问题吗?(应该没什么区别,但我的操作系统是Archlinux-64)编辑(1):我现在能够添加CFLAGS进行配置,但它继续消耗无限数量的内存。我的Gcc版本是4.8.2!编辑(2):新版图形工具(2.2.28)解决了我的问题,因为他们修复了这

c++ - 如何同时满足 gcc4.1.2 和 gcc 4.7.3

一个项目需要在gcc4.1.2(公司服务器)和gcc4.7.3+(桌面linux系统)下编译,遇到一些问题:1.gcc4.1.2没有Wno-unused-result和Wno-unused-but-set-variable。我尝试用Wno-unused替换后两者,但仍然生成忽略返回值的内置函数错误。2.gcc4.1.2中也没有Wno-narrowing,还有什么我可以用的吗?我应该怎么做才能让他们都开心? 最佳答案 我建议您在makefile中处理两个版本之间的差异。您可以检测GCC版本,如果GCC版本支持它们,则可以pramati

c++ - clang 和 gcc 在处理模板生成和静态 constexpr 成员时的不同行为?

考虑以下程序(抱歉太长了;这是我能想到的表达问题的最短方式):#include#include#includeusingnamespacestd;std::vector&test_vector(){staticstd::vectorrv;returnrv;}templateclassRegistrarWrapper;templateclassRegistrar{Registrar(){auto&test_vect=test_vector();test_vect.push_back(std::type_index(typeid(T)));}friendclassRegistrarWrap

c++ - 如何从 gcc 的预编译头文件中获益最多?

我有一个包含许多目标的C++项目,其中包括大量boost头文件和其他行密集型头文件。大多数目标都包含相同的header。因此,我认为这可能是使用预编译头文件(pch)的理想选择。所以我创建了一个包含最多头文件的头文件并对其进行了预编译。这将编译单元的代码行从350k减少到120k(我将-save-temps标志传递给gcc以进行检查)。我检查它是否与-H参数一起使用,并且pch前面有一个感叹号。预编译头有550MB。不过,编译时间只从23秒减少到20秒。预编译header是否会带来这种小改进?如果不是,我做错了什么?预编译header的编译速度最快的是什么?编辑:这是gcc命令:/us

c++ - 模板的 typedef 包括 char[][] - 适用于 VS2008 但不适用于 gcc

我有一些正在使用的库代码。它在VisualStudio(2008)下编译和工作,但不是GCC(v4.8.4.)在标题中我们有:externconstcharmenu_styles[MENU_COUNT][MAX_LEN];typedefSysEnumMenuStyleEnum;SysEnum在哪里(在另一个文件中定义):templateclassSysEnumgcc遇到错误:error:‘menu_styles’cannotappearinaconstant-expression我完全同意。(此外,它是constchar*转换为char*)。我希望VS2008只是用constchar*

c++ - 编译器 (gcc) 可以保证 c++ 循环吗?

我必须进行以下AVX操作:__m256perm,func;__m256in=_mm256_load_ps(inPtr+x);__m256acc=_mm256_setzero_ps();perm=_mm256_shuffle_ps(in,in,_MM_SHUFFLE(3,2,1,0));func=_mm256_load_ps(fPtr+0);acc=_mm256_add_ps(acc,_mm256_mul_ps(perm,func));perm=_mm256_shuffle_ps(in,in,_MM_SHUFFLE(2,3,0,1));func=_mm256_load_ps(fPtr+1

c++ - 未使用值警告 : C vs C++ using gcc

是否有可能使gcc像g++那样处理C++的未使用值警告?对于像C中的p&&++*p;这样的指令,有一个警告,但对于C++则没有。设置-wno-unused-value并不是真正的解决方案,因为它还会删除有用的警告(如下面的第2行)。示例:$(gcc--version|head-1;ls-lqwe.*;catqwe.x;echo$sep;gcc-c-O2-Wallqwe.c;echo$sep;g++-c-O2-Wallqwe.cc)2>&1|sed's/^//'gcc(Debian4.9.2-10)4.9.2lrwxrwxrwx1tmltml5Jul2310:12qwe.c->qwe.x

c++ - 用于 openmp 4.5 卸载到 (gpu) 设备的 nvptx gcc (9.0.0/trunk) 找不到 libgomp.spec

一段时间以来,我一直在尝试安装OpenMP4.5卸载到NvidiaGPU版本的gcc,但到目前为止没有成功,尽管我越来越接近了。这次我关注了thisscript,我做了两个更改:首先,我指定了gcc的主干版本而不是7.2,其次,根据github存储库,nvptx-newlib现在包含在nvptx-tools中,所以我删除了那部分脚本。为便于引用,原脚本为#!/bin/sh##BuildGCCwithsupportforoffloadingtoNVIDIAGPUs.#work_dir=$HOME/offload/wrkinstall_dir=$HOME/offload/install#L

【Linux】环境基础开发工具的使用之gcc详解(二)

前言:上一篇文章中我们讲解了Linux下的vim和yum的工具的使用,今天我们将在上一次的基础上进一步的讲解开放工具的时候。💖博主CSDN主页:卫卫卫的个人主页💞👉专栏分类:Linux的深度刨析👈💯代码仓库:卫卫周大胖的学习日记💫💪关注博主和博主一起学习!一起努力!目录标题Linux基础开发工具的使用Linux编译器-gcc/g++使用gcc与g++安装gcc程序产生的过程gcc的用法逐过程讲解预处理阶段编译阶段汇编阶段链接阶段动态库与静态库Linux基础开发工具的使用Linux编译器-gcc/g++使用GCC概念:GCC(GNUCompilerCollection)是一套开源的编程语言编译器

c++ - 隐式转换产生 "error: taking address of temporary"(GCC vs clang)

在试验强类型整数时,我遇到了一个来自GCC8.2的奇怪错误:error:takingaddressoftemporary我可以想象上述错误有意义的典型场景,但在我的情况下我没有遇到问题。重现错误的缩小(人为)示例如下:#include#includeenumclassEnum:std::size_t{};structPod{std::size_tval;constexproperatorEnum()const{returnstatic_cast(val);}};templateconstexprvoidfoo(){usingFoo=std::integral_constant;//[G