草庐IT

移植修复

全部标签

c++ - 如何修复 C++ 线程死锁示例

我设计了一个C++11线程死锁。这是通过使用两个单独的函数和一个多线程池来实现的。如何修复此示例以避免死锁?我认为解决方案与锁定过程的一致排序有关。#include#include#includestd::mutexkettle;std::mutextap;#defineTHREAD_POOL8voidkettle_tap(){std::coutkettle_lock(kettle);std::couttap_lock(tap);std::couttap_lock(tap);std::coutkettle_lock(kettle);std::cout 最佳答

c++ - 如何将模板中具有非依赖名称的 msvc++ 代码移植到 Linux?

我可以处理移植平台相关的功能。我有一个问题,我在Linux上试过的编译器(clang和g++)不接受以下代码,而msvc++编译器接受:templateclassBase{protected:TValue;};templateclassDerived:publicBase{public:voidsetValue(constT&inValue){Value=inValue;}};intmain(intargc,charconst*argv[]){Derivedtmp;tmp.setValue(0);return0;}g++错误:main.cpp:Inmemberfunction‘void

c++ - 如何修复 vs2013 上的 C3848 错误?

我正在尝试在VS2013上使用C++实现最佳优先搜索。下面是代码。//nodefortreestructNode{Node(std::stringconst&s,std::stringconst&p):state(s),path(p){}conststd::stringstate;conststd::stringpath;};//heuristicfunctorstructManhattanDistance{std::size_toperator()(std::stringconst&state,std::stringconst&goal){std::size_tret=0;for(i

c++ - 如何修复错误 c2118 : negative subscript

同样,将32位应用移植到64位。我在下面提到的C_ASSERT语句中得到负下标错误。C_ASSERT(sizeof(somestruct)==some#define);我还阅读了http://support.microsoft.com/kb/68475文章,但不确定在这种情况下我是否知道如何修复它。感谢您的帮助。提前致谢。 最佳答案 我猜C_ASSERT宏定义如下:#defineC_ASSERT(x)typedefcharC_ASSERT_##__COUNTER__[(x)?1:-1];这是一个编译时断言:如果编译时表达式x为真,那

c++ - 什么是可移植的轻量级 C/C++ 正则表达式库?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭8年前。ImprovethisquestionPossibleDuplicate:LightweightandportableregexlibraryforC/C++?我正在寻找用于匹配正则表达式的C++(C也可接受)库。图书馆应该满足这些要求:可以在Windows上构建(MSVC7及更新版本)可以在Linux(g++3.4及更新版本)上构建。没有外部依赖;仅允许C/C++运行时和STL匹配小(~200个字符)字

c++ - 如何在从 Linux 移植的 C++ 项目中使用 Open GL

我刚刚尝试在我的Mac上编译一个开源C++应用程序。我收到错误GL/gl.h文件未找到。我知道这意味着它找不到需要编译和运行的开放式GL库。我对下一步该做什么感到困惑,因为似乎OSX包含对opengl的内置支持。有nothing去下载。对于OSX和Linux上的OpenGL,头文件名称似乎可能不同(OpenGLheadersforOSX&Linux)所以我对下一步该做什么感到困惑。我是否下载OpenGL并将其链接到我的项目?我是否将xcode配置为使用native版本的OpenGL?我要更改标题吗?有人可以提供更多指导吗?这个答案给出了windows/linux的答案——但不是OSX:

c++ - 为什么我的析构函数被调用,我该如何修复它

这个问题在这里已经有了答案:WhatisTheRuleofThree?(8个答案)关闭7年前。我的C++程序中的析构函数有问题。当我运行程序并获取用户输入时,它突然调用析构函数,然后cout甚至无法在语句中打印。假设用户输入将是一个,因为我将这部分代码设计为仅接受输入1。我认为当您离开范围时会调用析构函数,所以我认为至少应该在cout之后调用析构函数我将在下面评论的if语句,以使你们更容易阅读。如果有人可以解释我的错误并纠正它,那就太好了!在我的头文件中有#include#include#include#includeusingnamespacestd;classcreature{pu

LVGL移植stm8.3超详细【stm32移植lvgl】

LVGL8.3移植stm超详细【stm32移植lvgl8.3】序言1、lvgl简介2、lvgl码源第一步第二步第三步3、修改配置文件修改lv_port_disp_template.h修改lv_port_disp_template.c修改lv_conf.h4、修改显示的必要文件第一处去除warning第二处5、显示测试6、总结序言CSDN中很多移植lvgl的,跟着他们的最后很多都是花屏。“大抵是写的太过糊弄,碰壁的鼻是平了,所以不敢有所期待”。在移植lvgl之前你必须有能够正常显示的屏幕。下面我们加入正题。1、lvgl简介lvgl是一款全部用c语言实现的ui图形库,对硬件的要求比较低,可以较为流

c++ - 我很难修复我认为是双重免费的东西

我正在尝试创建一个链表vector作为类成员。Valgrind显示没有内存泄漏,但也会在程序结束时产生Invalidfree()/delete/delete[]/realloc()错误。我试图通过为链表编写析构函数、复制构造函数和复制赋值运算符来解决这个问题。我相信这些已经正确实现。我还尝试了各种向成员vector添加链表的方法(引用、指针、智能指针),但似乎都无法解决问题。#include"lists.h"lists::lists(){}voidlists::newList(){intsize,value;cout>size;shared_ptrnew_list(newlist);/

c++ - 将 C++ 结构移植到 Delphi

首先,让我向您展示结构:structHPOLY{HPOLY():m_nWorldIndex(0xFFFFFFFF),m_nPolyIndex(0xFFFFFFFF){}HPOLY(__int32nWorldIndex,__int32nPolyIndex):m_nWorldIndex(nWorldIndex),m_nPolyIndex(nPolyIndex){}HPOLY(constHPOLY&hPoly):m_nWorldIndex(hPoly.m_nWorldIndex),m_nPolyIndex(hPoly.m_nPolyIndex){}HPOLY&operator=(constH