草庐IT

vs-cmake-examples

全部标签

c++ - VS2005、VS2008下C++生成的EXE速度; VS2010编译器

当我从VS6升级到VS2005时,我发现在默认编译设置下我的国际象棋引擎程序的速度提高了10%。想知道一般情况下是否也是如此,以及从那时起对MSC++编译器的最终输出进行了哪些改进(如果有的话)。 最佳答案 关于从2010之前的VC++版本迁移到VC++2010+:如果您大量使用STL容器和算法,升级到VC++2010+可能会提供显着超过10%的改进,因为VC++2010+实现了C++11的移动语义。我记得关于Boost的一个特定帖子声称从VC++2008迁移到VC++2010后,他们的应用程序性能提高了900%的邮件列表:[boo

c++ - : returnType vs returnType &?这几种形式有区别吗

考虑这些免费的独立功能:std::vector&f();//referencestd::vectorg();//value/*const*/std::vector&f1=f();//referencestd::vectorf2=f();//value/*const*/std::vector&g1=g();//referencestd::vectorg2=g();//value有什么区别:f()和g()。这是一个简单的问题,但我仍然希望听到一些关于它们的详细评论,因为这可能有助于理解下一个问题的答案。f1和f2。它们是来自f()的同一个原始对象,还是f2是原始对象的拷贝?取消注释cons

c++ - VS2008 传递变量 - 结构与结构组件 - 优点/缺点?

我真的希望这不是那些super基本的问题之一。无论如何,我有一个包含47个组件的结构,我正在调用各种函数,这些函数一次使​​用3到10个这些组件。这样调用函数是否更好:foo(pParam->variable1,pParam->variable2,pParam->variable3)或foo(pParam)然后在函数中使用pParam->variable1;pParam->变量2;pParam->variable3;?提前致谢! 最佳答案 你应该通过引用传递结构,这样你就不需要复制所有的值:voidfoo(mySturctpPara

c++ - VS2010 中的 "redefinition; different type modifier"

我正在尝试编译我在visualstudio中下载的一些代码。该代码适用于msvc6,我将其导入VS2010。该代码用于通过编译一个DLL来为labview提供ASIO支持。见here对于整个代码。构建时出现以下错误:“错误C2373:‘_pctype’:重新定义;不同的类型修饰符。”代码片段如下:unsignedshort_Ints[512];unsignedshort*_pctype=_Ints;如果有人要从我提供的链接中引用代码包,这是来自文件GenMonCIN.c 最佳答案 错误消息试图告诉您_pctype已在其他地方定义。它

C++ 代码在 g++ 和 vs2008 中得到不同的结果

#include#include#includeusingnamespacestd;structExmpl{Exmpl(){coutevec(3);deletep;return0;}在g++(4.4.3)中编译时我得到了Exmpl()Exmpl(constExmpl&)~Exmpl()Exmpl()operator=(constExmpl&)~Exmpl()Exmpl()Exmpl()Exmpl(constExmpl&)Exmpl(constExmpl&)Exmpl(constExmpl&)~Exmpl()~Exmpl()~Exmpl()~Exmpl()~Exmpl()~Exmpl()

c++ - CppUnit 和 CMake : . cpp 文件被编译两次

我目前正在使用CMake构建我的项目,并使用CppUnit对其进行测试。在我的CMake文件中,我创建了两个可执行文件。sample是编译后的源代码本身。使用sample_test我运行测试。如果我是这是我的CMakeLists.txt的一部分SET(SAMPLE_ROOT_PATH${PROJECT_BINARY_DIR})SET(SAMPLE_SOURCE_PATH${SAMPLE_ROOT_PATH}/src)SET(SAMPLE_TEST_SOURCE_PATH${SAMPLE_ROOT_PATH}/test)SET(SAMPLE_BIN_PATH${SAMPLE_ROOT_P

c++ - cmake -D <变量> :<type>=<value> what does the parameter "-D" mean

我正在尝试使用cmake安装opencv。在opencv说明页面中,我找到以下示例:cd~/opencvmkdirreleasecdreleasecmake-DCMAKE_BUILD_TYPE=RELEASE-DCMAKE_INSTALL_PREFIX=/usr/local..据我了解,我应该在我创建的新目录中使用cmake生成Makefile,在这个例子中应该是~/opencv/release。但我不太明白最后一行。在cmake帮助中,我发现:cmake-D:==createacmakecacheentry这是什么意思?特别是这部分:":=",我不明白为什么这个例子给出了"CMAKE

c++ - GNU 编译器 vs. Visual Studio 在数组上分配 w/Length Constant w/in a Scope

我知道如果你在c/c++中设置一个动态值,你不能在括号内使用该值来分配一个数组(这会使它成为所谓的可变长度数组(VLA),其中currentC++standard不支持)...即见:C++:VariableLengthArrayhttp://en.wikipedia.org/wiki/Variable-length_array我不太明白(而且我在这里没有看到确切地问到的)是为什么GNUc/c++编译器(gcc、g++)没问题使用基于整数值的动态分配(据我所知),只要该值是数组分配范围内的常量,但VisualStudio不支持这一点并且将拒绝编译代码,吐出错误。例如在g++中voidFo

c++ - CMake 删除包含目录

一旦在CMake中找到include目录,有什么方法可以删除吗?我发现了类似的问题here.但答案对我来说意义不大。我需要与上述消息的作者几乎完全相同的信息。我有一个全局CMakeLists.txt文件,它可以找到所有必要的包含路径。但是在一个特定子模块的CMakeLists.txt文件中,我想“隐藏”或“删除”系统包含路径并提供替代包含路径。是的,一个解决方案可能只是简单地更改提到的子模块中的包含,但是这个子模块是来自其他存储库的外部库,所以我不想更改它的代码。 最佳答案 如果您有能力使用较新的CMake版本(2.8.11或更高版

探索效率与可扩展性:MinIO图片服 VS FastDFS图片服

目录1、前言2、背景知识2.1Minio图片服的概述2.2FastDFS图片服的概述3、性能比较