草庐IT

vs-cmake-examples

全部标签

java vs C++ 通过引用传递

我对以下内容感到困惑:在C++中,我们可以通过引用将参数传递给函数(已将其声明为指针或引用变量),如果我们在函数内部修改它,则更改会在函数返回时反射(reflect)给调用者。这在Java中没有发生,我不确定我是否理解为什么。例如这是来自对象X的方法publicbooleanaMethod(intid,myClassaClass){//dosomelogicaClass=newMyClass();//configureargumentobjectaClassreturntrue;}在调用代码中://somecodeprocessingmyClassobj=null;if(X.aMeth

Ubuntu升级cmake,可任意切换版本

今天需要使用cmake编译一个工程,但是提示cmake版本不对,记录一下如何升级cmake,并实现自由切换版本。升级步骤下载cmake安装包点击此链接下载对应版本的cmake使用tar解压tar-zxvfcmake-3.22.0-linux-x86_64.tar.gz3.查看解压内容,此步骤不必要(我安装时解压方式不对,所以造成文件缺失,导致安装失败,执行本步骤查看解压结果)tree-L3#如果执行上述命令提示没有安装tree,不要慌张,不要着急,执行下述命令即可sudoaptinstalltree4.将解压后的文件移动至系统目录,并创建软链接文件即可。sudomvcmake-3.22.0-l

c++ - 在windows xp上用VS 2012编译MFC程序

我在windows7上有VS2012。我想构建一个可以在windowsXP上运行的MFC程序。但是,当我将exe文件移动到WindowsXP时收到以下错误:“它不是有效的win32应用程序”。在互联网上探索后,我发现我应该安装VisualStudio2012Update1并将平台工具集从“VisualStudio2012(v110)”更改为“VisualStudio2012-WindowsXP(v110_xp)”。我还将目标机器更改为“MachineX86(/MACHINE:X86)”。这次我在WindowsXP上运行exe文件时收到另一个错误:“无法在动态库KERNEL32.dll中

c++ - 派生类中的constexpression,clang vs rest

最小的例子:#includestructB{constexprstaticconstsize_tMAX=10;};structD:B{constexprstaticconstsize_tMAX=20;};voiduse(constB&v){static_assert(v.MAX==10,"");}templatevoiduse2(X&&v){static_assert(v.templateMAX==20,"");}intmain(){Dd;static_assert(d.MAX==20,"");use(d);use2(d);return0;}GCC(v5.4...v7.3):编译良好(

Windows环境下OpenCV及OpenCV-contrib通过CMake的源码编译安装

Windows环境下OpenCV及OpenCV-contrib通过CMake的源码编译安装前言:计算机视觉后期使用及开发基本都为Linux系统,前期学习等基础功能还是在Windows下编写,本文总结并记录曾经遇见的那些坑。下载与安装OpenCV:https://github.com/opencv/opencvOpenCV_contrib:https://github.com/opencv/opencv_contribOpenCV的拓展库,版本一定要和OpenCV对应,选装CMake:https://cmake.orgVisualStudio(VS):https://visualstudio.m

c++ - GCC 可以像 VS 一样产生结构/类名不匹配吗?

我想让GCC发出警告,当VisualStudio发现一个名称已用class和struct声明时,它会发出警告。(警告4099)这通常是由前向声明引起的,例如:structBase;...classBase{...};在这种情况下,VS实际上无法链接,因此我已将警告升级为错误。由于这个项目是跨平台的,我还想在使用GCC编译时发现这个问题——否则我可能会不小心checkin在VS中无法运行的代码。是否有任何开关或方法可以让GCC也拒绝或警告此类类/结构声明不匹配?注意:从评论来看,不确定这个警告是否合法。对于我的问题,它不相关,因为条件导致VisualStudio中的链接失败(我不能忽略警

c++ - CMake 和 Visual Studio 资源文件

我正在将使用VisualStudio2005创建的C++项目转换为CMake,并且偶然发现项目中包含的资源文件存在一些问题。该项目包括一个.rc文件,一堆.ico文件和一个.rc2文件。常规.rc文件在生成的项目中工作正常,并使用资源编译器。然而,.ico和.rc2文件在刚刚包含时会导致问题,因为在生成的项目中,VisualStudio会尝试使用C/C++编译器编译它们。我假设这些文件包含在.rc文件中,因此不将它们包含在CMakeLists.txt文件中可能会起作用,但显然可以将它们列在项目(它们在原始项目中可见)我想这样做,以便生成项目的用户可以看到正在使用这些文件。在CMake中

c++ - 使用 cmake 时未创建调试符号

我在github.com/RainerKuemmerle/g2o编译了c++代码库添加后使用cmakeset(CMAKE_BUILD_TYPEDebug)以便能够调试应用程序。然后它创建了一个名为“g2o”的构建文件。但是当我尝试使用gdb进行调试时,这是我得到的输出。user2@arm_machine:~/g2o/trunk/bin$gdbg2oGNUgdb(Ubuntu/Linaro7.4-2012.04-0ubuntu2.1)7.4-2012.04Copyright(C)2012FreeSoftwareFoundation,Inc.LicenseGPLv3+:GNUGPLvers

c++ - VS2012中使用 'volatile'关键字的最佳实践

自从将我们的开发和构建环境从VS2008升级到VS2012后,我对使用volatile的含义感到困惑。我们遗留代码库中的关键字(它非常广泛,因为有很多复制的模式用于管理“旧”时代的线程)。微软在VS2012文档中有如下注释:IfyouarefamiliarwiththeC#volatilekeyword,orfamiliarwiththebehaviorofvolatileinearlierversionsofVisualC++,beawarethattheC++11ISOStandardvolatilekeywordisdifferentandissupportedinVisualS

c++ - 生成当前获胜的随机数 : CPU vs GPU,?

我一直致力于物理模拟,需要生成大量随机数(如果你想要一个想法,至少10^13)。我一直在使用Mersennetwister的C++11实现。我还读到,同样算法的GPU实现现在是Cuda库的一部分,并且GPU可以非常高效地完成这项任务;但我找不到明确的数字或​​基准比较。例如,与8核i7相比,上一代的Nvidia卡在生成随机数方面是否性能更高?如果是,价格是多少?我认为我的模拟可以通过让GPU生成大量随机数并由CPU完成其余的工作来获得好处。 最佳答案 可以在这里找到一些比较:https://developer.nvidia.com/