草庐IT

MINGW_NOTHROW

全部标签

c++ - throw() (即 __declspec(nothrow)) 是否在 Visual C++ 中提供了真正的好处?

专注于VisualC++,您是否体验过使用throw()(即__declspec(nothrow))非抛出规范在C++代码中的显着性能提升?它真的对优化器有帮助吗?是否有任何基准显示性能提升?我在网上找到了不同的(相反的)建议:Boostexception-specificationrationale反对throw(),而LarryOsterman在他的博文中似乎赞成:Whyaddathrow()toyourmethods?(我想澄清一下,我对VC++特定的代码感兴趣;我知道在GCC中,throw()规范实际上可以是一种“悲观化”"由于运行时检查。)P.S.阅读ATLheaders,发

c++ - "g++"不被识别为内部或外部命令,MinGW

在我的电脑上,我有Windows7x86。我安装了MinGW,我写了路径,但是当我进入cmd.exe并写g++-v时它说:"g++"isnotrecognizedasaninternalorexternalcommand.但是当我编写make-v命令时,它会识别它。我在学校需要这个,我在Eclipse中工作,我什至安装了最新的java(我看到它必须安装)。 最佳答案 看到make命令运行正常,我想你忘记在MinGW安装管理器中标记mingw-gcc-g++包了。再次运行MinGW安装管理器并标记mingw-gcc-g++进行安装,然

c++ - MinGW: "gcc is not recognized as an internal or external command"

我下载并安装了MinGW。我使用图形程序安装C++编译器。在Windows命令行中键入gcc会打印:gccisnotrecognizedasaninternalorexternalcommand我检查了,gcc.exe存在于C:\MinGW\bin中。怎么了? 最佳答案 虽然是一个老问题,但这里的答案都没有帮助我。我发现到达目的地的唯一路线是在命令提示符下输入以下行:复制:设置Path=C:\MinGW\bin;%PATH%之后,只需输入gcc-v。希望这对解决我遇到的问题的人有所帮助!

c++ - MinGW 错误 : ‘thread’ is not a member of ‘std’

我正在尝试为Windows交叉编译一个简单的应用程序:#includevoidFunc(){return;}intmain(){std::threadthr1(Func);thr1.detach();return0;}这就是我得到的:$i686-w64-mingw32-g++-static-libstdc++-static-libgcc-pipe-g-std=c++0x./threadstutor.cpp./threadstutor.cpp:Infunction‘intmain()’:./threadstutor.cpp:8:3:error:‘thread’isnotamemberof

c++ - 如何在 MSVC 中使用使用 MingW 编译的库?

我已经用MingW/MSYS编译了几个库...生成的静态库总是.a文件。当我尝试将库与MSVC项目链接时,VisualStudio会抛出“未解析的外部符号”......这意味着.a静态库与MSC++链接器不兼容。我认为它必须转换为与MSVC兼容的.lib文件。.a和.lib都只是.o或.obj文件的AR存档,那么有什么方法可以在MSVC项目中使用MingW编译的库?还是我必须在一个编译器/链接器中编译/链接所有内容-仅限MSVC/仅限MingW?据说MingW编译器与MSVC兼容。我阅读了一些关于这个主题的帖子,但他们大多说将文件重命名为.lib应该可以完成工作,但不幸的是它对我不起作

c++ - 我可以强制 Visual Studio 使用 mingw 编译器吗

我不喜欢qtcreator作为IDE并且喜欢VS,但我必须完全使用mingw编译器。悲伤的故事:'( 最佳答案 只需设置一个makefile项目-这样您就可以告诉VC运行什么命令来编译您的文件。除了VisualStudio项目之外,您还必须维护一个makefile,但这并不是什么大问题,因为在这种情况下,VS项目只是您希望VisualStudio了解的文件列表。不幸的是,VS调试器在这种情况下没有用,但IDE的所有代码导航都可以正常工作。 关于c++-我可以强制VisualStudio使

c++ - 是否不再包含在 MinGW 和/或 MSYS 中?

我在我的Windows7计算机上安装了MinGW和MSYS。我将C:\ProgramFiles(x86)\MinGW\bin添加到我的路径中。gcc和g++等命令有效,但make无效。我查看了目录,没有名为make的可执行文件,即使我安装了所有组件。有一个名为mingw32-make的文件。还有其他以mingw32-为前缀的文件,如c++、g++、gcc、gcc-4.6.1、gfortran等。但是,C:\ProgramFiles(x86)\MinGW\msys\1.0\bin中有一个make。如果我打开MinGWShell并输入make,make就会执行。但是,它不会从Windows

c++ - windows下使用mingw/gdb无法调试eclipse helios cdt上的小程序,控制台死机

我一直在尝试使用EclipseCDT来做一些c++示例,我可以使用run命令很好地运行它们,但是每当我尝试调试时,控制台窗口就会卡住,我可以输入,但是程序无法继续。当我调试时,我在控制台窗口上得到以下输出(没有断点,但由于默认设置而在main上中断):Hello,worldputyourname:15^running当我输入内容并点击enter时,继续按钮被禁用并且不执行任何操作。15是一个随机数,有时是16、20等。如果我在eclipse下运行程序,我会得到输入提示就好了:Hello,worldputyourname:testHellotest这是我尝试调试的代码:#include#

c++ - 标准库 (STL) 容器是否支持一种 nothrow 分配形式?

new运算符(或对于POD,malloc/calloc)在分配大块内存时支持一种简单而有效的失败形式。假设我们有这个:constsize_tsz=GetPotentiallyLargeBufferSize();//1M-1000MT*p=new(nothrow)T[sz];if(!p){returnsorry_not_enough_mem_would_you_like_to_try_again;}...std::containers是否有任何这样的构造,或者我总是必须处理std::vector和friend的(预期的!!)异常?可能有一种方法可以编写一个自定义分配器来预分配内存,然后将

c++ - Mingw libgcc_s_sjlj-1.dll 丢失

我正在尝试使用mingw在代码块中编译程序。我必须包含libw2_32.a我没有得到任何编译器错误。该程序编译正常,但是当我想运行它时,它说libgcc_s_sjlj-1.dll丢失。我在我的mingw安装中搜索了这个dll,但我找到的唯一dll是:libgcc_s_dw2-1.dll我做错了什么? 最佳答案 使用mingw的g++编译时必须使用-static-libgcc以消除对LIBGCC_S_SJLJ-1.DLL的依赖。您可以通过将static-libgcc添加到链接器标志来做到这一点。我在这篇文章中找到了这个信息:http: