草庐IT

Gtk-WARNING

全部标签

c++ - g++ 编译器 : optimization flag adds warning message

我注意到g++编译器的这个有趣的行为,如果我向编译器添加一个-O3标志,我会得到otsu.cpp:220:warning:‘x’maybeuseduninitializedinthisfunction但是,当我不使用优化而是使用调试标志-g时,我根本没有收到任何警告。现在,当-g标志打开时,我更信任编译器;但是,我想知道这是否是应该预期的明确定义的行为?为清楚起见,导致此问题的代码大致如下:intx;//uninitializedgetAValueForX(&x);//functionmakesuseofx,//butxisunitialized在哪里voidgetAValueForX

c++ - 为什么我在这个简单的代码中得到 "ld: warning: direct access in _main to global weak symbol"?

这个问题在这里已经有了答案:xcodewithboost:linker(Id)Warningaboutvisibilitysettings(6个答案)关闭5年前。在我的Clang编译器中这是非常奇怪的行为。我使用Xcode(OSX),所有都是最新的。为什么我会在那个简单的代码中收到此警告?如果我删除这两行,警告就会隐藏。ld:warning:directaccessin_maintoglobalweaksymbolstd::__1::char_traits::eq(char,char)meanstheweaksymbolcannotbeoverriddenatruntime.Thisw

c++ - constexpr 静态模板函数 : g++ error is a warning on clang

考虑以下片段:#includetemplateconstexprintf(){returnI*f();}templateconstexprintf(){return1;}intmain(){std::cout();return0;}这段代码可以很好地与g++和clang编译。非常好。现在将static添加到模板函数特化中:templateconstexprstaticintf(){return1;}然后g++6.1响应错误:11:error:explicittemplatespecializationcannothaveastorageclass还有clang3.8:11:error:

c++ - pragma warning(push, 0) 不禁用/墙警告?

我记得这个技巧在过去的某个时候有用,但现在似乎不起作用了。在#include语句周围放置#pragmawarning(push,0)实际上并不能阻止/Wall从这些语句中生成警告包含文件。将/Wall更改为/W4解决了这个问题,但使用/Wall似乎被打破了。#pragmawarning(push,0)#include#pragmawarning(pop)intmain(){std::cout构建输出:MicrosoftVisualStudioCommunity2017版本15.5.3完整的命令行开关(从cmake生成):/GS/TP/analyze-/Wall/Zc:wchar_t/G

c++ - 破坏 Glib::RefPtr 会导致 GTK 3 核心中的断言失败

来自Gtkmm的人是comparingGlib::RefPtr与std::auto_ptr:Glib::RefPtrisasmartpointer.Specifically,itisareference-countingsmartpointer.Youmightbefamiliarwithstd::auto_ptr,whichisalsoasmartpointer,butGlib::RefPtrismuchsimpler,andmoreuseful.但是由于某些奇怪的原因,我无法使用RefPtr完成我的工作。.相同的代码适用于auto_ptr.在下面的代码中,SmartPtr只是这两个

c++ - 如何在 valgrind 中跟踪/捕获 "Warning: invalid file descriptor -1 in syscall close"

valgrind显示以下内容:==13880==Warning:invalidfiledescriptor-1insyscallclose()是否有一种简单的方法来调查此错误?我的意思是-例如显示堆栈跟踪?这是一个巨大的项目,我无法手动检查每个关闭。另外,我想这对于每个系统调用错误的文件描述符都是一样的。我运行它是这样的:valgrind--trace-children=yes--track-fds=yes--log-fd=2--error-limit=no\--leak-check=full--show-possibly-lost=yes--track-origins=yes\--s

c++ - “Warning: comparison is always true”

带有-Wextra的GCC(4.7.2)发出以下警告/错误信号(我启用了-Werror):Comparisonisalwaystrueduetolimitedrangeofdatatype[-Wtype-limits]对于以下代码[tryonline]:template(std::numeric_limits::max())structvalidator{staticconstexprboolvalidate(Tvalue){returnstatic_cast(value)structvalidator{staticconstexprboolvalidate(T){returntrue

c++ - "Warning: corrupt .drectve at end of def file"是什么意思?

这个问题在这里已经有了答案:Warning:corrupt.drectveatendofdeffile(3个答案)关闭去年。在这个环境下,我编译了一个c++/openGL的例子贴在网上:Windows7代码::Blocksv13.12MinGW构建于2013年10月(不确定版本)mingw32-g++v4.8.1来自codeincodeblock.com的代码:#defineGLEW_STATIC//third-partylibraries#include#include#include#include#include#include#includeGLuintgVAO=0;GLuin

c++ - 如何防止将 `#warning` 消息视为错误?

我正在尝试在现有代码库中编译引入-Werror标志。我遇到的问题之一是在某些地方#warning用于显示信息性消息。这些不应被视为错误。一个解决方案是使用#pragmamessage代替,但这似乎不受旧版本gcc的支持。(我们的构建服务器使用gcc4.1.2)。谁能帮我解决这个问题? 最佳答案 在gcc-4.6及以上版本中,可以使用-Wno-error=cpp。至少在Lion及以后发布的clang中,您可以使用-Wno-error=#warnings。但是由于您的构建服务器使用古老的gcc,您可能在那里运气不好。通常,传递-fdia

c++ - 在没有显示的情况下使用 GTK

是否可以在没有有效X显示的情况下使用GTK?我想将GTK与Webkit结合使用,但目前我只对使用DOM函数进行实验感兴趣,因此我不需要实际显示任何内容。在没有显示器的服务器上通过SSH连接执行此操作对我来说非常方便。但是,如果没有DISPLAY环境变量,gtk_init()只会失败并显示消息:Gtk-WARNING**:无法打开显示:有没有在没有显示器的情况下使用GTK的方法? 最佳答案 有一个名为Xvfb的X服务器,它提供有效的DISPLAY并将输出发送到文件而不是图形硬件。您可以在运行gtk客户端的同一台机器上运行它,gtk将能