草庐IT

when_GLIBCXX_DEBUG

全部标签

c++ - 错误 : incomplete type when using HMAC_CTX in C++ project

我正在尝试编译这个库ndn-cxx在我的笔记本电脑里。我已经在另一台计算机上尝试过并且编译成功但现在我收到此错误并且我认为它与openssl相关。我使用sudoapt-cachesearchlibssl|确认我的笔记本电脑中有openssl|grepSSL结果是:libssl-ocaml-OpenSSL的OCaml绑定(bind)(运行时)libssl-ocaml-dev-OpenSSL的OCaml绑定(bind)libssl0.9.8-SSL共享库libsslcommon2-企业消息传递系统-通用SSL库libsslcommon2-dev-企业消息系统-通用SSL开发文件我在尝试编译

c++ - gcc 与 clang : noexcept parsed in unused template specialization when static casting

我正在尝试将函数指针静态转换为特定函数重载,但似乎clang仍会解析(未使用的)模板特化的noexcept语句,从而生成编译器错误。如果未使用相应的函数重载,GCC似乎并不关心noexcept。templatevoidfun(T)noexcept(T(1)){}voidfun(int){}voidfun(int*){}intmain(){inta;fun(&a);//callingworksfinefun(a);static_cast(&fun);//staticcastingdoesn't}https://godbolt.org/z/ixpl3f这里是哪个编译器出错了?当将函数指针转

c++ - 我试过 : valgrind, _GLIBCXX_DEBUG,-fno-strict-aliasing;我该如何调试这个错误?

我有一个非常奇怪的错误,我花了几天时间试图弄清楚,所以现在我想看看是否有人有任何意见可以帮助我理解发生了什么。一些背景。我正在从事一个软件项目,该项目涉及使用Boost1.45向Python2.7.1添加C++扩展,因此我的所有代码都通过Python解释器运行。最近,我对破坏了我们的回归测试之一的代码进行了更改。这个回归测试可能对数值波动过于敏感(例如不同的机器),所以我应该解决这个问题。但是,由于此回归在产生原始回归结果的同一台机器/编译器上发生故障,因此我将结果的差异追溯到这段数字代码(可证实与我更改的代码无关):c[3]=0.25*(-3*df[i-1]-23*df[i]-13*

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++程序如何获得debug/release条件编译

在大型C++/Qt/QMake/qtcreator项目中,我想执行一些测试,但仅当我使用调试标志进行编译时。有没有办法告诉g++代码的某些小部分只能在Debug模式下编译? 最佳答案 执行此操作的标准方法是依赖宏NDEBUG,由宏assert()使用在中定义:#ifdefNDEBUG//releasemodecode#else//debugmodecode#endif#ifdef的反义词是#ifndef,当然还有#else分支是可选的。如果此宏不起作用(无论出于何种原因),您可以试试宏QT_NO_DEBUG,Qt将其用于与Q_ASS

c++ - X代码 6.1 : All commands in Debug menu greyed out

我目前正在使用XCode进行一些C++编程。我的问题是XCode中的调试菜单总是灰色的。添加断点也不会改变这一点。我在提问之前进行了一些搜索,答案主要是确保方案正确。我检查了是否选择了LLDB调试器,并且已将可执行文件添加到目标。我还缺少什么?谢谢 最佳答案 在您构建并运行当前方案之前,调试菜单项将被禁用。在osx10.9.5上使用xcode6.1.1,我选择“新建>项目应用程序>命令行工具”来创建一个简单的helloworld。所有调试命令都是灰色的我发现这很令人困惑,因为我习惯了visualstudio给我通过介入开始调试的选项

c++ - 地址 sanitizer : "SEGV on unknown adress" when using throw-catch and printf

当我扔东西时,例如一个int或一个charconst*,并使用printf检查错误,我得到一个AddressSanitizerError。我无法在网上找到任何类似的东西,而且我的代码示例非常基础,以至于我真的不明白它怎么可能会产生错误。精简代码示例:#includeintmain(){try{throw42;}catch(intmsg){printf("%d\n",msg);}return0;}运行代码时的控制台输出:ASAN:SIGSEGV===================================================================16533=

c++ - boost::interprocess : cout a string variable when iterating through a map that references an object from a struct

我正在使用boost::interprocess在进程之间共享对象。我有两个文件,一个生成结构对象并将该对象传递到具有int索引的映射中的“server.cpp”;和一个“client.cpp”文件,它检索内存数据并遍历数据,输出到控制台。结构看起来像这样:structmydatao{stringMY_STRING;intMY_INT;};和对象:mydatao;o.MY_STRING="hello";o.MY_INT=45;服务器和客户端都能正确编译。但是出于某种原因,如果我尝试访问客户端中的字符串而不是float或整数,客户端可执行文件会抛出段错误。例如下面的second.MY_I

c++ - 警告: "when type is in parentheses, array cannot have dynamic size"?的原因是什么

我已经发布了一个关于与数组的动态内存分配相关的GCC错误的问题:Anerrorisissuedbygccrelativetoparsingtype-idinanewexpression现在使用ClangHEAD10.0.0我收到以下警告:rog.cc:9:37:warning:whentypeisinparentheses,arraycannothavedynamicsizeint(**a)[N3]=new(int(*[n1])[N3]);~~^~~当我运行这个演示程序时:#includeintmain(){constsize_tN3=4;size_tn1=2;int(**a)[N3]