草庐IT

compiler-warnings

全部标签

c++ - VS2008 : Disable warnings in included header files outside the project

这可能吗?我不想全局禁用警告,因为我想检查我自己的头文件是否有警告。 最佳答案 您可以禁用有关包含外部头文件的警告:#pragmawarning(push)#pragmawarning(disable:thewarning)//includehere#pragmawarning(pop)如果您需要多次包含标题,您可以使用编译指示创建一个标题并将其包含在内。问了同样的问题here. 关于c++-VS2008:Disablewarningsinincludedheaderfilesoutsi

c++ - 为什么我收到错误 : initializing argument 1 of 'Item::Item(int)' [-fpermissive] in Eclipse when I try to compile my C++ code?

我是C++的新手,在盯着它看了太久之后终于放弃了尝试编译它。编译器似乎出于某种原因拒绝了头文件中的构造函数原型(prototype)......我无法弄清楚它有什么问题。项目.h:#ifndefITEM_H_#defineITEM_H_classItem{public:Item(int);//ThislineiswhatEclipsekeepsflaggingupwiththeerrorinthetitlevirtual~Item();Item*getNextPtr();intgetValue();voidsetNextPtr(Item*);};#endif/*ITEM_H_*/在我的

c++ - C++11 中的 exec 缺少 "missing sentinel"警告

如果您忘记在对exec(3)之一的调用结束时包含NULL标记,GCC会发出有用的警告。功能:#includeintmain(intargc,char**argv){execlp("test","test","arg1");}GCC4.8的示例编译器输出:$g++test.cc-Wformattest.cc:Infunction‘intmain(int,char**)’:test.cc:4:32:warning:missingsentinelinfunctioncall[-Wformat=]execlp("test","test","arg1");^$但是,如果您在C++11模式下编译,

c++ - 是否有将引用返回到临时文件的 C++ 警告?

这个案例有一个错误:constint&foo(){constintx=0;returnx;}甚至constint&foo(){conststd::pairx={0,0};returnx.first;}但不是这个:constint&foo(){conststd::arrayx={0};returnx[0];}并且(不那么令人惊讶)不是这个:constint&foo(){conststd::vectorx={0};returnx[0];}特别是在std::vector在这种情况下,我知道这个警告会非常棘手,因为对于编译器来说constint&并不明显由std::vector::operat

keil5【问题解决】提示:Target ‘LED‘ uses ARM-Compiler ‘Default Compiler Version 5‘ which is not available

文章目录1、问题描述:2、问题解决:2-1、原因分析:2-2、下载CompilerVersion5编译器2-3、安装CompilerVersion5编译器2-4、导入CompilerVersion5编译器的路径:===============================================1、问题描述:keil5选择ARMCompiler:CompilerVersion5,提示显示Miss:CompilerVersion5,编译之后提示:***Target‘LED’usesARM-Compiler‘DefaultCompilerVersion5’whichisnotavaila

[遇到的问题-已解决]Cannot resolve plugin org.apache.maven.plugins:maven-compiler-plugin:3.1

如上图所示,这是我解决好的,刚开始的时候爆红有这些: 我按照在网上查找的方法,一一试了。首先,maven 安装的路径和和本地仓库的目录必须要保持一致打开setting-Build,Excution,Deployment-BuildTools-Maven,将其修改一致(我还是爆红)  接着,在maven\apache-maven-3.5.4\conf下的setting.xml中,找到标签,在其中添加了阿里镜像(我自己还是爆红)alimavencentralaliyunmavenhttp://maven.aliyun.com/nexus/content/repositories/central/a

c++ - CMake add_compile_options 在适当的时候会影响链接器选项吗?

一些编译器选项实际上可能需要额外的链接选项才能真正有效。例如,启用GCC'sLinkTimeOptimization,-flto选项必须在编译命令和链接命令中传递。有一个漂亮的builtincmakecommand用于添加编译选项,但据我所知,没有相应的链接选项命令。即使有,当我使用的编译选项暗示它们时需要明确指定它们也会很烦人。那么add_compile_options(-flto)是否将-flto添加到link命令?如果没有,我是否需要直接设置(LINK_FLAGS....? 最佳答案 add_compile_options和t

c++ - 如何使用大 vector 初始化来避免 "compiler limit: compiler stack overflow"?

在我的单元测试中,我得到以下编译器错误:Theerrormessageindicatesasfollows:'fatalerrorC1063:compilerlimit:compilerstackoverflow'这是由一些生成的header引起的,其中包含:std::vectorGetTestData(){return{0x1,0x2,0x3};//Verylarge500kbofdata}如何在不使MSVC崩溃的情况下以这种方式使用vector?请注意,代码在clang和gcc中构建正常。 最佳答案 尝试将您的数据放入一个常量静

c++ - "warning C4800: ' int' : forcing value to bool 'true' or 'false' "不同场景下的不同行为

我无法理解此警告的以下行为。case1:boolread=(33&3);//NoWarningissuedbyvs2013case2:intb=33;boolread=(b&3);//NowcompilerisgeneratingC4800warning.为什么编译器在情况2中生成警告,而在情况1中不发出任何警告。 最佳答案 C4800是一个性能警告-在运行时将整数强制转换为bool会产生成本。这与逻辑正确性无关。最常见的强制转换(和警告)发生在您与使用整数(VC++中的BOOL)作为bool值的代码交互时。第一个代码段中的编译时强

c++ - 用C++17编译Eigen需要_SILENCE_CXX17_NEGATORS_DEPRECATION_WARNING定义

我正在尝试分配一个稀疏矩阵block,但无法让它工作。似乎eigen使用的函数已被弃用,我可以用一些定义来修复它。但是,我确定我是应该将这些定义添加到项目中还是等待更新版本的Eigen。你们能否就定义的副作用提出建议。我写的程序是这样的#includeintmain(){Eigen::SparseMatrixm(4,4);m.block(0,0,2,2)这是警告:1>d:\eigen_3.3.4\eigen\src\core\functors\stlfunctors.h(87):errorC4996:'std::unary_negate':warningSTL4008:std::not