草庐IT

c++ - 在 Visual Studio 2005 中加速编译

对于主要包含C++项目的解决方案,在VisualStudio2005中加快编译时间的最佳方法是什么? 最佳答案 除了预编译头之外,还有许多其他事情可能会减慢您的速度:病毒检查软件-会对构建产生严重影响。如果您正在运行病毒检查程序,请尝试将其关闭并查看您获得了什么样的改进。RAM不足-RAM不足会导致更多的磁盘读取并降低您的速度。继续->慢速HDD-不管怎样,您都必须写入光盘,而慢速驱动器(如许多笔记本电脑和低端系统中的驱动器)会破坏您的构建。您可以获得更快的驱动器、RAID阵列或SSD缓慢的处理器……当然。不太可能,但是:检查并查看

c++ - 是什么导致 VS2013 错误 LNK2005 : __xi_a already defined in MSVCRT. lib(cinitexe.obj)?

我的解决方案是昨天构建的。今天,除了.hpp和.cpp文件外,它没有改变任何东西。VisualStudio2013的完整错误文本(使用2013年11月CTP):Error1errorLNK2005:__xi_aalreadydefinedinMSVCRT.lib(cinitexe.obj)C:\Users\drtwox\dev\repos\game\trunk\engine\game\LIBCMT.lib(crt0init.obj)gameError2errorLNK2005:__xi_zalreadydefinedinMSVCRT.lib(cinitexe.obj)C:\Users\

用于 VS2005 的 C++ std::tr2

Boost是VS2005用户体验TR2的唯一途径吗?还有只下载TR2相关包的白痴证明方法吗?我在看BoostProConsulting提供的boost安装程序。如果我为MSVC8的所有包选择所有线程选项的选项,则需要1.1GB。虽然我不缺空间,但库需要超过1GB的空间并且BPC需要很长时间才能catch当前版本,这似乎很荒谬。我需要什么包?我真的只对那些包含std::tr2的那些感兴趣,并且可以通过将提供的那些与TR2报告中的那些进行比较并从列表中选择那些来找到它,但即使那样也不清楚需要什么和事实上,它是一个落后的版本,这让我很恼火。我从之前使用Boost(1.33.1)的经历中知道,

需要帮助以删除过时的=*从SQL 2005查询加入操作员

在SQL2012及更高版本中不再兼容查询。需要协助来转换。selectdistinctpo.name,sc.name,sc2.namefromsysobjectsfo,sysobjectspo,sysforeignkeysfk,sysobjectsoo,syscolumnssc,sysreferencesref,syscolumnssc2wherefo.xtype='F'andoo.name=@tab_nameandpo.id=fo.parent_objandfo.id=fk.constidandoo.id=fk.rkeyidandsc.id=po.idandref.constid=fk.co

c++ - 使用 Visual Studio 2010 : LNK4098 and LNK2005 运行 gtest

我已经按照描述安装了googletesthere.但是当我尝试对我当前的项目使用测试时,我收到2个LNK4098警告:defaultlib'MSVCRTD'与其他库的使用冲突;使用/NODEFAULTLIB:库“LIBCMTD”也是如此,还有一堆LNK2005错误。但是当我实际上忽略这两个默认库时,它并没有帮助:我得到了更多的错误。有什么问题? 最佳答案 您必须确保googletest和您的项目是使用相同版本的C运行时库(CRT)构建的。谷歌测试(目前v1.6.0)提供2个VisualStudio解决方案文件;gtest-1.6.0

c++ - 如何在 C++ 程序崩溃时获取堆栈跟踪? (使用 msvc8/2005)

有时我的C++程序在Debug模式下崩溃,我得到的是一个消息框,提示某些内部内存管理例程(访问未分配的内存等)中的断言失败。但我不知道那是从哪里调用的,因为我没有得到任何堆栈跟踪。我如何获取堆栈跟踪或至少查看它在我的代码中失败的位置(而不是库/内置例程)? 最佳答案 如果发生崩溃,无论您使用的是调试版本还是发布版本,都可以获得有关崩溃发生位置的信息。即使您在没有源代码的计算机上,也可以看到调用堆栈。为此,您需要使用通过EXE构建的PDB文件。将PDB文件放在与崩溃的EXE相同的目录中。注意:即使您拥有相同的源代码,构建两次并使用第一

c++ - 如何保证在 Visual Studio 2005 下的 C++ 中捕获 EXCEPTION_STACK_OVERFLOW 结构化异常?

背景我有一个带有Poof-Crash[1]的应用程序。我相当确定这是由于堆栈损坏造成的。应用程序是多线程的。我正在使用“启用C++异常:是的,带有SEH异常(/EHa)”进行编译。我编写了一个SE翻译器函数并用它调用了_set_se_translator()。我已经为set_terminate()和set_unexpected()编写了函数并进行了设置。为了获得StackOverflow,我必须在高负载下以Release模式运行几天。在调试器下运行不是一种选择,因为应用程序的执行速度不足以达到查看问题所需的运行时间。我可以通过在执行其中一个函数时添加无限递归来模拟该问题,从而测试是否捕

c++ - 你能让 Visual Studio 2005 为你的启动程序提供命令行参数吗?

出于测试目的,VisualStudioIDE中是否有某个位置可以指定命令行参数,以便在从IDE启动项目时发送到启动项目?在此先感谢您的帮助! 最佳答案 是-单击项目的属性,然后单击调试,然后单击命令参数。您可以在那里输入命令行参数,它们将在启动时传递给您的应用程序。 关于c++-你能让VisualStudio2005为你的启动程序提供命令行参数吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/qu

c++ - 如何避免头文件中定义的变量出现 LNK2005 链接器错误?

我有3个这样的cpp文件#include"Variables.h"voidAppMain(){//Stuff...}它们都在内部使用相同的变量,因此它们具有相同的header,但我得到的是这样的1>OnTimer.obj:errorLNK2005:"intslider"(?slider@@3HA)alreadydefinedinAppMain.obj这是为什么? 最佳答案 请记住,#include大致类似于将包含文件剪切并粘贴到包含它的源文件中(这是一个粗略的类比,但您明白了)。这意味着如果您有:intx;//or"slider"o

c++ - VS 2005 C++ 项目中的 msvcr90.dll 依赖项

我在VS2005中为nativeWin32/非托管C++创建了一个DLL项目,将其命名为myProj.dll。它依赖于第3方商业DLL,后者又依赖于msvcr90.dll(我假设它是从VS2008项目构建的)。我将其命名为thirdParty.dll。我的DLL项目在VS2005中构建得很好。我构建了一个链接到myProj.lib的测试应用程序(同样是VS2005Win32C++)。(顺便说一句,根据.lib的小尺寸以及在运行时应用程序必须找到myProj.dll的事实来判断,我猜测.lib只是调用的包装器加载实际DLL的loadLibrary();是否接近?)我的问题是,在运行时,测