草庐IT

MinGW-builds

全部标签

c++ - 在 MinGW 编译器中,-mwindows 命令是什么,它有什么作用?

我在使用C++程序时遇到问题,当我运行.exe时,程序会运行并且我的程序窗口会打开,但控制台会在后台的桌面上打开。我进行了谷歌搜索,发现使用-mwindows命令作为参数进行编译会删除控制台。它做到了。但我不确定它到底做了什么,我很好奇。 最佳答案 它的行为与the/subsystem:windowsswitchdescribedonMSDN完全相同.基本上,它将入口点设置为WinMain(或wWinMain)而不是main(或wmain),这会导致没有控制台窗口,并且会运行一些Win32启动代码来创建传递给WinMain的参数。正

c++ - 假 ||在 MinGW 编译器 v 6.3.0-1 中给出 0

这是我写的C++程序:#includeusingnamespacestd;intmain(){cout这是输出。false||false:0false||true:0true||false:1true||true:1false&&false:0false&&true:0true&&false:1true&&true:1有人可以向我解释为什么false||true给出0?我正在使用MinGWC++编译器版本6.3.0-1。 最佳答案 根据C++OperatorPrecedence,operator优先级高于operator||(和op

c++ - 快速取幂:real^real (C++ MinGW, Code::Blocks)

我正在编写一个应用程序,在某个block中我需要对实数取幂大约3*500*500次。当我使用exp(y*log(x))算法时,程序明显滞后。如果我使用另一种基于处理数据类型的算法,速度会快得多,但该算法不是很精确,尽管它为模拟提供了不错的结果,但它在速度方面仍然不够完美。有没有比exp(y*log(x))更快的求实幂的精确求幂算法?提前谢谢你。 最佳答案 如果您需要良好的准确性,并且您对先验的基数(x值)的分布一无所知,那么pow(x,y)是最好的可移植答案(在许多-不是所有-平台上),这将比exp(y*log(x))更快,并且在数

c++ - MinGW/GCC 延迟加载 DLL 等价物?

我正在尝试将一些旧的MSVCC++代码移植到MinGW/GCC。一个问题是项目严重依赖/DELAYLOAD选项来获取并不总是使用的函数,以及运行时正确的dll所在的位置。MinGW/GCC上有类似的选项吗?这段代码是针对windows平台的。 最佳答案 我要补充一点,虽然延迟加载DLL看起来是Windows操作系统的一部分,但它们实际上是根据链接器生成的小stub来实现的。至少,过去是这样。因此,在Windows操作系统级别没有正式的“延迟加载”概念。有一个约定,基于链接器发出的二进制代码。

c# - 了解 Build C++

我想我知道什么是构建。但我不确定。我对构建的定义是编译应用程序的另一种说法。有人可以告诉我构建到底是什么吗?为什么人们要求3种类型的构建。例如调试构建、配置文件构建和发布构建。有什么区别。[编辑]构建的类型 最佳答案 看看VisualStudioDebugandReleaseModesRelease模式在Release模式下构建程序集时,编译器会执行所有可用的优化,以确保输出的可执行文件和库尽可能高效地执行。此模式应用于将要发布给最终用户的已完成和测试的软件。Release模式的缺点是虽然生成的代码通常更快更小,但调试工具无法访问它

c++ - 奇怪的 mingw 链接器错误与 boost ?

我已经为此工作了一段时间,但似乎无法理解这种情况-部分原因是我不完全了解发生了什么(这就是我来这里的原因)。我正在做一种boostHelloWorld如下:#include#includevoidhelloworld(){std::printf("HELLOFROMABOOSTTHREAD!");}intmain(intargc,char**argv){boost::threadt(&helloworld);t.join();}这是在Windows上。我将Boost目录存储在C:\Boost中。我运行了bootstrap和bjam,现在有一个包含所有.lib文件的stage/lib文件

c++ - 为什么 Mingw 在编译时更改我的标识符名称?

我有一个小型C++库,在Linux(这是我的主要开发平台)上编译得很好。现在我正在尝试使用Mingw在Windows机器(XP3)上构建它,但由于无法解释的错误而导致编译失败。例如,假设我在AAA类中有以下方法,在命名空间aaa中,在文件aaa.h中声明:voidAAA::DrawText(fooz);在编译文件aaa.cpp(当然包含方法实现)时,出现以下错误:D:\dev\[...]\aaa.cpp:644:error:no'voidaaa::AAA::DrawTextA(fooz)'memberfunctiondeclaredinclass'aaa::AAA'是的,你明白了,那里

c++ - 将 MinGW 与 Visual Studio 2010 集成(Makefile 项目)

我正在尝试让MinGW(版本4.7.2)与VisualStudio2010一起使用,以使用一些新的C++11功能(遗憾的是我仍在使用WindowsXP,无法使用VisualStudio2012)。首先,我创建了一个项目:文件->新建项目->VisualC++->常规->Makefile-ProjectGeneral:BuildCommandLine:mingw32-make.exeRebuildAllCommandLine:mingw32-make.exerebuildallCleanCommandLine:mingw32-make.execleanallIntelliSense:In

c++ - '简历' : a namespace with this name does not exist while building (VS 2015, OpenCV 3.2)

在VS2015中构建一个简单的OpenCV应用程序时出现错误'cv':anamespacewiththisnamedoesnotexistwhilebuilding虽然我相信我已经完成了为VS配置OpenCV所需的所有步骤(使用本文作为引用http://opencv-srf.blogspot.com/2013/05/installing-configuring-opencv-with-vs.html)类(class)的开始很简单#include"opencv2/imgcodecs.hpp"#include"opencv2/highgui.hpp"#include"opencv2/sti

c++ - 为什么 VS 要求数组大小为常量,而 MinGW 不需要?有办法解决吗?

我已经将我使用code::blocks编写的Mingw的一些代码移植到visualstudio和他们的编译器,它发现了很多错误,我的数组大小必须是常量!为什么VS需要恒定大小而mingw不需要?例如constintlen=(strlen(szPath)-20);charszModiPath[len];len变量用红色下划线表示它是一个错误并表示“预期的常量表达式”我能想到的解决这个问题的唯一方法是......char*szModiPath=newchar[len];delete[]szModiPath;我是否必须将所有内容都更改为动态的,或者在VS中有其他方法吗?