草庐IT

linker-warning

全部标签

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

c++ - %llx 格式说明符 : invalid warning?

已编辑以删除第一个警告以下代码在mingw32下的g++4.4.0中按预期工作:#includeintmain(){longlongx=0xdeadbeefc0defaceLL;printf("%llx\n",x);}但是如果我使用-Wall启用所有警告,它会说:f.cpp:Infunction'intmain()':f.cpp:5:warning:unknownconversiontypecharacter'l'informatf.cpp:5:warning:toomanyargumentsforformat%lld也是一样。这在较新的版本中已修复吗?再次编辑添加:如果我指定-std

c++ - Xcode4 : "bad codegen, pointer diff" linker error again

这个问题与此相关:"badcodegen,pointerdiff"linkererrorwithXcode4和"badcodegen,pointerdiffinboost"errorin32-bitbuild和XCode3.2.6and4linkererrorsld:badcodegen,pointerdiffin...toglobalweaksymbol我目前正在将我的所有项目升级到Xcode4,但我遇到了一些奇怪的事情。-仅当我构建通用二进制文件或32位版本时才会出现上述错误。如果我只坚持64位,一切正常。我正在自己构建一个自定义静态库,现在我不在该代码中使用任何可见性设置(即at

c++ - 杂乱的函数指针 : how to remove the warning?

正如我在thispost中提问和回答的那样.我有以下示例代码。#includecharfoo(){return'a';}charbar(){return'b';}charblurga(){return'c';}charbletch(){return'd';}char(*gfunclist[])()={foo,bar,blurga,bletch};char(*(*x())[])(){staticchar(*funclist[4])()={foo,bar,blurga,bletch};returnfunclist;}intmain(){printf("%c\n",gfunclist[0](

c++ - Visual Studio : How to specify different runtime libraries for the linker?(/MTd、MDd 等)

我正在链接到VS2008中的几个库。如果我对链接器的了解是正确的,MTd用于静态链接而MDd用于动态链接(到DLL)。我的目标是静态链接一些库和动态链接其他库。项目选项似乎只有一个设置适用于链接器输入中的所有库。我该怎么做? 最佳答案 在您设置项目后,您的项目将获得一个合理的C运行时库默认值,具体取决于您如何回答新建项目向导的提示。您可以按如下方式检查和更改(如果需要):在解决方案资源管理器中右键单击相关项目,选择属性查看配置属性、C/C++、代码生成、运行时库。您可以根据需要链接其他库,您只需在“链接器”、“输入”、“附加依赖项”

c++ - 为什么 g++ 链接器不警告这个不一致的函数声明?

这是在使用g++4.4和g++4.7的Debiansqueeze上测试的。考虑两个C++源文件。################foo.cc##################includeusingstd::string;intfoo(void){return0;}#################bar.cc##################includeusingstd::string;//intfoo(void);stringfoo(void);intmain(void){foo();return0;}##################如果我编译并运行它,可以预见会出现问题

c++ - "#pragma GCC diagnostic warning"与海湾合作委员会

这个问题在这里已经有了答案:HowcanIdisable#pragmawarnings?(5个答案)关闭9年前。我使用GCC4.5.1并收到如下警告:warning:expected[error|warning|ignored]after'#pragmaGCCdiagnostic'原因是“#pragmaGCCdiagnosticpush”,对于4.6版之前的GCC不存在。我不能更改代码(这不是我的)和GCC版本。我怎样才能禁用这些警告?一些GCcflags可能是?P.S.:我看到Why"pragmaGCCdiagnosticpush"popwarninginGCC/C++?,但我的问题

c++ - 如何在 GCC 中禁用#warning 消息?

GCC中有一个名为#warning的预处理器指令,它只是在编译时使用附加的字符串发出警告。海湾合作委员会documentation说这可以用-Wno-cpp标志禁用。但是,此标志似乎不起作用。我在用海湾合作委员会4.4.3。一个简单的测试用例是这样的:#include#warning"Hello"intmain(){}结果是:$g++warn.ccwarn.cc:2:2:warning:#warning"Hello"$g++warn.cc-Wno-cppwarn.cc:2:2:warning:#warning"Hello"文档有错吗? 最佳答案

c++ - 许多 : 'Apple Mach-O Linker Errors'

我在Xcode中制作了一个使用DropBoxAPI的iPhone应用程序。我遇到了23个错误,它们都被命名为AppleMach-OLinkerErrors。我已将我的二进制文件与dropbox库以及:SystemConfiguration、QuartzCore、Security、CFNetwork、CoreGraphics、UIKit和Foundation链接起来。我并没有使用所有这些框架,但DropBox告诉我必须导入其中的一些,而我正在使用其余的。我该怎么办?这是错误之一:Ld/Users/Zach/Library/Developer/Xcode/DerivedData/SnapD