草庐IT

vs-cmake-examples

全部标签

c++ - 安装前后使用 CMake 配置文件路径一致

我的层次结构中有不同的库和可执行文件作为子项目。他们中的大多数是守护进程。所以我有它们相应的cfg文件,这些应用程序在启动期间读取这些文件。我有两个问题。让我们有一个简单的场景:单个项目没有层次结构。我必须在有/没有install的情况下运行应用程序。因此,如果我放置一个安装指令以将cfg保存在/etc中,我可以获得一个不变的cfg路径。但在某些情况下我可能不希望安装。我想在执行make后立即运行可执行文件。那么如何以使用/不使用install的方式管理cfg?接下来是我的场景,其中我有一个子项目层次结构。其中监视器需要a.cfg和b.cfg。所有的配置文件都单独保存在另一个子项目中。

c++ - 模板的 typedef 包括 char[][] - 适用于 VS2008 但不适用于 gcc

我有一些正在使用的库代码。它在VisualStudio(2008)下编译和工作,但不是GCC(v4.8.4.)在标题中我们有:externconstcharmenu_styles[MENU_COUNT][MAX_LEN];typedefSysEnumMenuStyleEnum;SysEnum在哪里(在另一个文件中定义):templateclassSysEnumgcc遇到错误:error:‘menu_styles’cannotappearinaconstant-expression我完全同意。(此外,它是constchar*转换为char*)。我希望VS2008只是用constchar*

C++ 类型比较 : typeid vs double dispatch dynamic_cast

是否有任何性能或稳健性原因使您更喜欢其中一个?#include#includestructB{virtualboolIsType(Bconst*b)const{returnIsType2nd(b)&&b->IsType2nd(this);}virtualboolIsType2nd(Bconst*b)const{returndynamic_cast(b)!=nullptr;}};structD0:B{virtualboolIsType(Bconst*b)const{returnIsType2nd(b)&&b->IsType2nd(this);}virtualboolIsType2nd(B

c++ - C/C++ 不确定值 : Compiler optimization gives different output (example)

C/C++编译器(clang、gcc等)似乎产生了与优化级别相关的不同输出。您也可以查看本文中包含的在线链接。http://cpp.sh/5vrmv(将输出从无更改为-O3以查看差异)。基于下面的一段代码,有人可以解释我的几个问题吗:#include#includeintmain(void){int*p=(int*)malloc(sizeof(int));free(p);int*q=(int*)malloc(sizeof(int));if(p==q){*p=10;*q=14;printf("%d",*p);}return0;}是否确定执行将始终进入if语句?我们如何知道两个指针p和q的

文心一言 VS ChatGPT :谁是更好的选择?

前言目前各种大模型、人工智能相关内容覆盖了朋友圈已经各种媒体平台,对于Ai目前来看只能说各有千秋。GPT的算法迭代是最先进的,但是它毕竟属于国外产品,有着网络限制、注册限制、会员费高昂等弊端,难以让国内用户享受。文心一言是百度主推的大模型,算法迭代在国内大模型中领先但肯定比不上GPT,不过它使用门槛低,打开网页就能用,3.5版本完全免费。所以到底选择哪一个就得看各位的需求了,如果你对AI算法要求非常高,力求最专业,那就选择GPT,如果你只需要解决平常的写作、聊天、图文需求,那就选择文心一言。我本人很推荐文心一言,想支持国内产品。除了文心一言,国内还有许多非常优秀的AI工具,我也想推荐给大家~你

c++ - long long VS 2013 Release Win 64 错误结果

当我在VS2013/Win64/Release中尝试这段代码时,我得到了错误的结果:它打印出11。在Visual2013Win32/Debug/Release&Win64/Debug中,结果是正确的。VisualStudio项目是使用默认参数创建的。#includeintmain(intargc,char*argv[]){longlonginc[2]={0,1};longlongdinc[2]={0,0};dinc[0]=inc[1]-inc[0];dinc[1]=inc[0]-inc[1];//expected-1==>display1for(inti=0;i如何解释这个结果?

c++ - 未使用值警告 : C vs C++ using gcc

是否有可能使gcc像g++那样处理C++的未使用值警告?对于像C中的p&&++*p;这样的指令,有一个警告,但对于C++则没有。设置-wno-unused-value并不是真正的解决方案,因为它还会删除有用的警告(如下面的第2行)。示例:$(gcc--version|head-1;ls-lqwe.*;catqwe.x;echo$sep;gcc-c-O2-Wallqwe.c;echo$sep;g++-c-O2-Wallqwe.cc)2>&1|sed's/^//'gcc(Debian4.9.2-10)4.9.2lrwxrwxrwx1tmltml5Jul2310:12qwe.c->qwe.x

c++ - VS2015 与 VS2013 中的不同优化导致浮点异常

我有一个从VS2013到VS2015的过渡过程中出现的问题的小例子。在VS2015中进一步提到代码示例导致浮点无效操作。intmain(){unsignedintenableBits=_EM_OVERFLOW|_EM_ZERODIVIDE|_EM_INVALID;_clearfp();_controlfp_s(0,~enableBits,enableBits);intcount=100;floatarray[100];for(inti=0;i这只发生在Release模式下,所以它可能是由不同的优化引起的。此代码有问题还是VS2015中的错误?很难在整个代码库中找到像这样的问题,所以我正

c++ - 添加卡萨布兰卡依赖 VS2017

我最近升级到VS2017,我希望开始做更多的C++工作。我已经有很长一段时间没有使用VS或C++了(甚至那时我还是一个C++新手)。我正在尝试安装Casablanca,又名CPPRestSdk(https://github.com/Microsoft/cpprestsdk),但我似乎无法管理它。我试过通过NuGet安装它,但我不确定我必须链接到我的项目的确切内容,我试过vcpkg-我已经通过说明下载到它,但我不知道是什么在那里做。我为此找到的所有Material都适用于早期的VS版本,但在我尝试时似乎不起作用。有没有人有这样的运气让这个工作?如果没有,我可以使用具有清晰安装说明的替代方

c++ - 无法在 Ubuntu 上使用 CMake 构建 C++ 程序的断点

我正在尝试在Ubuntu上使用VSCode调试C++程序。我已经通过make成功地构建了项目。我使用bin/showdat命令从终端调用它并且它有效。在VSCode中,我安装了C++调试工具,而不是创建launch.json和tasks.json。下面附上这两个文件。现在我可以按F5成功启动这个程序并且运行良好。但是main函数第一行的断点没有命中。任何人都可以给我一些建议,我该如何解决这个问题?感谢您的时间。如果需要更多信息,请告诉我。launch.json文件内容{//UseIntelliSensetolearnaboutpossibleattributes.//Hovertovi