草庐IT

VC_redist.x86

全部标签

c++ - 在正确的时间点将调试器附加到 VC++ 进程的最佳方法是什么?

调试时,有时您需要附加一个已经在运行的进程,而不是仅仅在调试器中启动应用程序。我自己通常会调用Sleep()或MessageBox,这样更容易附加调试器。我担心其中一些最终可能会提交给源代码管理。避免这种情况的最佳方法是什么,同时仍然延迟足够的时间以便您可以将调试器附加到正在运行的进程?用#ifdef_DEBUG保护sleep或消息框是一种方法,但我想知道是否有更好的方法。对于Sleep,您还有可能无法及时连接的问题。使用MessageBox时,您可能会遇到远程调试或调试没有可见GUI的进程的问题(例如在Vista上作为服务运行) 最佳答案

c++ - 在 VC++ 项目中开始使用 PCH

我正在VS2012中处理一个VC++项目,完整编译需要大约8-10分钟。我知道PCH可以将编译时间加快10倍。我目前在我的项目中禁用了PCH,我在需要的地方包含了头文件。如何开始使用PCH?我到处寻找“如何”指南,但我得到的只是文档。我假设我必须:为PCH配置我的项目,创建一个空白的PCH头文件从每个.cpp收集标题文件并将其放入PCH头文件修改每个文件,删除所有头文件导入重新编译并希望一切正常;)我如何开始这个(特别是#1)?您是否修改过一个项目以使用PCH,其中有哪些绊脚石或常见问题/问题?PCH是否会导致任何问题,还是与正常包含的编译时/运行时行为相同?是否有工具可以自动化该过程

c++ - 函数指针的模板参数推导(g++ & ICC vs Clang++ & VC++)

考虑以下程序:#includetemplatevoidfoo(constT*x){x();}voidbar(){std::cout它在clang++和VC++上编译良好,但g++给出以下编译器错误(参见现场演示here)main.cpp:Infunction'intmain()':main.cpp:10:9:error:nomatchingfunctionforcallto'foo(void(&)())'foo(bar);^main.cpp:3:6:note:candidate:templatevoidfoo(constT*)voidfoo(constT*x){^~~main.cpp:

c++ - 如何在 VC++ 项目中强制执行附加包含文件搜索顺序?

例如,我有两个header.h文件位于两个不同的目录include1和include2。我的源代码文件使用不指定确切位置的常规包含,如下所示:#include"header.h"在项目配置中,我将我的include1和include2文件夹都设置在附加包含目录列表中。问题是当我构建我的项目时,每次都会选择include1文件夹,无论我在附加包含列表中定义它们的顺序如何。如果我想使用特定的文件夹或特定的头文件而不是另一个(如果它们具有相同的文件名),是否有任何方法可以强制执行搜索顺序? 最佳答案 包含顺序(MS的documented)

c++ - 摆脱我的 Release 应用程序中的 msvcr120.dll/msvcp120.dll 依赖项 (VC++ 2013)

我知道有一些关于如何将msvcr120.dll/msvcp120.dll包含到您的项目中的问题。但我想放弃这种依赖。我在VisualStudio2013中以Release版本编译程序。我不依赖于任何VS特定命令(#pragma等)或预编译header等。我想将它编译成一个单一版本的.exe并提供给用户而不要求他安装VC++RedistributesforVS(用户将在Windows7、Windows8,也许是WindowsXP)。这可能吗?如果是,怎么办? 最佳答案 您可以通过设置/MT标志将运行时静态链接到您的项目。您可以在Vis

c++ - x86 上两个 128 位整数的高效乘法/除法(无 64 位)

编译器:MinGW/GCC问题:不允许使用GPL/LGPL代码(GMP或任何bignum库对于这个问题来说都太过分了,因为我已经实现了该类)。我构建了自己的128位固定大小的大整数类(旨在用于游戏引擎,但可以推广到任何用例)并且我发现当前乘法的性能并且除法操作非常糟糕(是的,我已经对它们进行了计时,见下文),并且我想改进(或更改)执行低级数字运算的算法。当谈到乘法和除法运算符时,与类里面的几乎所有其他运算符相比,它们的速度慢得令人无法忍受。这些是相对于我自己的计算机的近似测量值:RawtimesasdefinedbyQueryPerformanceFrequency:1/60sec31

c++ - 在 VC++ 2008 项目中使用 VC++ 2010 运行时库

我致力于优化算法,因此性能非常重要。与VS2008相比,该算法在VS2010中编译时大约快8倍。谷歌搜索表明这不是我的错(参见例如https://stackoverflow.com/a/5560184/890355)。问题是最终工程必须在VS2008下搭建。我倾向于的解决方案是在VS2010中将我的算法构建为DLL,然后将其链接到主项目。是否可以在VS2008下将VC++2010运行时库与我的DLL一起使用?如果是这样,最不痛苦的方法是什么?还有其他想法吗?谢谢。 最佳答案 运行时不是问题。没有什么能阻止您将DLL链接到VC2010

c++ - VC2008 整个程序优化失败

我有一个在VS2008下编译的相当大的C++程序(~11mbexe),我很想知道整个程序优化是否会显着影响其性能。但是开启全程序优化和链接时间代码生成导致链接失败如下;1>c:\cpp\Win32\Atlas\tin\TINDoc.Cpp:fatalerrorC1083:Cannotopencompilerintermediatefile:'.\releaseopt\TINDoc.obj':Notenoughspace1>LINK:fatalerrorLNK1257:codegenerationfailed查看任务管理器,我可以看到链接器使用越来越多的内存,直到用完并崩溃。编译器在具有

c++ - Xcode C++::架构 x86_64 的重复符号

我是Xcode的新手,当我构建以下代码(MWE)时,出现以下错误ld:3duplicatesymbolsforarchitecturex86_64clang:error:linkercommandfailedwithexitcode1(use-vtoseeinvocation)我有如下三个文件;main.cpp#include"B.cpp"intmain(){square(5);return0;}B.cpp#include"A.cpp"voidsquare(intn){display(n*n);}A.cpp#includeusingnamespacestd;voiddisplay(in

c++ - lli: LLVM 错误: 无法选择: X86ISD::WrapperRIP TargetGlobalTLSAddress:i64

在Linux(Debian)上使用clang++-S-emit-llvmmain.cpp&&llimain.ll运行以下代码#includeintmain(){returnstd::async([]{return1;}).get();}由于以下错误,无法在lli上运行:LLVMERROR:Cannotselect:0xd012e0:i64=X86ISD::WrapperRIPTargetGlobalTLSAddress:i640[TF=10]0xd020c0:i64=TargetGlobalTLSAddress0[TF=10]Infunction:_ZSt9call_onceIMNSt