草庐IT

linker-warning

全部标签

c++ - 在 constexpr 函数中返回一个 C 字符串 : why no warning from the compiler?

考虑以下代码:constexprautof(){autostr="HelloWorld!";returnstr;}intmain(intargc,char*argv[]){staticconstexprautostr=f();std::cout我的编译器不显示任何警告是否正常?它是定义的行为吗?我能保证程序会显示"HelloWorld!"吗?我希望"HelloWorld!"不会超出函数的范围... 最佳答案 在C++中stringliterals有staticstorageduration只要程序运行就可以生存。因此,指向从f返回的

c++ - 关于 "warning C4312: ' 类型转换的问题'”

这是我的代码:HWNDWebformCreate(HWNDhParent,UINTid){returnCreateWindowEx(0,WEBFORM_CLASS,_T("about:blank"),WS_CHILD|WS_CLIPSIBLINGS|WS_VISIBLE,0,0,100,100,hParent,(HMENU)id,GetModuleHandle(NULL),0);}这是我收到的警告:warningC4312:'typecast':conversionfrom'UINT'to'HMENU'ofgreatersize这些是我的问题:为什么编译器认为转换为更大的类型是个坏主意

c++ - 我可以从 "treat warnings as errors"中排除一些特定的警告而不禁用它们吗?

在我的VisualC++代码中,我想要/WX-“将警告视为错误”。这让我处理每个警告,包括C4996-“Xwasdeclareddeprecated”我不想解决-我现在不想更改代码,我不想禁用C4996以便它保留在输出中。所以理想情况下我想要这样的东西:#pragmawarning(ExcludeFromWX:4996)因此,当使用/WX时,除此之外的所有警告都被视为错误,并且仅显示此警告并继续编译。是否有可能得到这样的行为? 最佳答案 您可以使用以下pragma重置指定的警告。我没有测试过,你也没有提到尝试这个:更新更改警告级别应

c++ - #pragma warning 不抑制警告

我的一个.cpp文件由于第3方header生成警告C4275#include...(由于DLL导出类继承自非据我所知,DLL导出类)。我添加了一行:#pragmawarning(disable:4275)作为我的.cpp文件的第一行,但警告仍在生成。这是在VC++2008上,没有使用PCH。为什么我的#pragma不起作用,并且(除了更改第3方代码之外)我该如何解决这个问题? 最佳答案 生成一个预处理文件,您可能会发现其他一些头文件重新启用警告。 关于c++-#pragmawarning

【已解决】redis启动错误: Warning: no config file specified, using the default config. In order to specify a

Warning:noconfigfilespecified,usingthedefaultconfig.Inordertospecifyaconfigredis启动报如下错误:意思是:启动时无法找到配置文件,远程无法连接解决方法:第一种:在cmd命令行中执行redis-server.exeredis.windows.conf第二种:在redis的根目录下新建一个start.bat文件,将redis-server.exeredis.windows.conf放在文件里,双击start.bat即可启动。也可以解决上述问题下面说说一个小问题:如何更改密码?首先如果是想一劳永逸,那么在redis.win

C++ 虚函数 : Can the linker remove entries in the virtual function table which aren't called?

这个问题是对eliminateunusedvirtualfunctions的一种跟进,这对我的兴趣来说还不够深入。问题:在定义具有虚函数的类时,编译器为虚函数表分配存储空间,并在表中存储指向函数的指针。这会导致链接器保留这些函数的代码,而不管它们是否被调用过。这可能会导致大量死代码保留在可执行文件中,即使编译器优化设置要求消除死代码也是如此。现在,如果在可执行文件中没有任何地方有特定虚函数的调用(或者换句话说,访问虚函数表的相应槽),则可以从虚函数中省略相应的函数指针表,链接器将删除该函数的代码,并可能进一步省略其他未引用的代码。显然,这不能由编译器完成,因为只有在链接时才会清楚是否调

c++ - 临时 : No compiler warning? 的绑定(bind)常量&

我有一个TestClass和一个const&成员变量。我从不同的地方和自己的经验知道,使用临时值的引用来初始化此const&是个坏主意。所以我很惊讶以下代码可以正常编译(使用gcc-4.9.1、clang-3.5和scan-build-3.5)但无法正常运行。classTestClass{public://removingthe"reference"wouldremovethetemporary-problemconststd::string&d;TestClass(conststd::string&d):d(d){//"d"isaconst-ref,cannotbechangedat

c++ - 如何将 "warnings as error"规则添加到 Qt .pro 文件?

当我通常处理C++项目时,我做的第一件事就是在我的编译器上设置“将警告视为错误”。当使用Qt时,qmake会为您生成Makefile,并且不会在编译命令中包含此选项。我很确定有一种方法可以将这样的选项(和其他选项)添加到生成的Makefile中,但我想不通。我该怎么做?我使用Qt的开源版本和g++作为编译器。 最佳答案 您可以使用QMAKE_CXXFLAGS在pro文件中指定编译器标志:QMAKE_CXXFLAGS+=-Werror 关于c++-如何将"warningsaserror"规

java - Maven 源代码 :jar task results in warnings

我们使用Maven3.0.5作为我们项目的构建工具,并且只有Windows客户端和服务器。在本地构建软件会提供干净的Maven输出,没有任何警告。在我们的ci服务器Jenkins上运行相同的构建,我们收到此警告:[WARNING]FailedtogetClassfororg.apache.maven.plugin.source.SourceJarMojo当我们在构建中包含source:jar目标时,我们会尽快收到警告。mvncmd:-ecleansource:jar.有谁知道这意味着什么,以及如何摆脱它?我找不到任何修复方法的提示,但在谷歌上搜索很多Jenkins构建日志都包含此警告。

Windows 10 Powershell 调用-WebRequest "Windows Security Warning "

好吧,在我看来,这是Microsoft需要立即解决的一个大问题。重现此步骤的步骤:powershell>Invoke-WebRequest"anywebsitewithcookies.com"(让我们以microsoft.com为例)您会收到以下警告:http://i.stack.imgur.com/TR023.jpg现在这真是可怕。为什么Microsoft认为这是可以接受的,这超出了我的理解,但是在Windows8.1中有一个解决方法。如果你进入:控制面板>Internet选项>隐私http://i.stack.imgur.com/OSLS3.jpg您可以将cookie设置为始终接受