草庐IT

windows - 在 Windows (MinGW) 上编译 Nasm 程序时未定义对 `WinMain' 的引用

我想在Windows上编译HelloWorldNASMexample。我已将上面的代码粘贴到main.asm文件中,并使用以下命令将其编译为obj文件:nasm-fwin32.\main.asm-omain.obj之后,我想将此obj文件编译为exe,如下所示:g++.\main.obj-omain.exe-m32但我收到此错误:C:/ProgramFiles(x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w6

c++ - 获取随机 SIGTRAP 信号(在 MinGW-gdb 中)是否是内存损坏的标志?

我编写了自己的引用计数内存管理器C++(为了好玩),我确信它并不完美;)。现在,当我尝试使用它时,我收到了随机的SIGTRAP信号。如果我注释掉与该内存管理器相关的每一行,一切都运行良好。获取SIGTRAP-s而不是SIGSEGV是很奇怪的。我知道当程序遇到断点时会抛出SIGTRAP-s,但没有设置断点。我在另一个线程中读到,exe和dll的调试版本必须是最新的。它们是最新的,所以这不是原因。有人知道为什么会这样吗? 最佳答案 在Google上搜索后,我意识到这些信号陷阱与您在MSVC++中收到的警告相同,提示“Windows已在x

c++ - Sublime Text 2 和 MinGW

美好的一天!任何人都可以分享他们如何将MinGW编译器附加到Sublime的经验吗?我在互联网上找到了一个配置,但是当我运行编译后的程序时,会弹出“../MinGW/bin/”中缺少文件的错误。配置:{"cmd":["mingw32-g++.exe","-o","$file_base_name","$file_name"],"path":"c:\\ProgramFiles\\MinGW\\bin\\"}谢谢!UPD我找到了问题的答案!我不得不在cmd中添加一个参数。它是"-static"。所以,这是我的MinGW.sublime-build,它运行良好:{"path":"c:\\Pro

c++ - 没有 make.exe 的 mingw 64 发货?

我的计算机上有一个旧版本的mingw,可以将程序编译为32位。现在我想编译成64位,所以我下载了新的mingw安装程序。它尝试了多次卸载和安装不同版本(每次都是x86_64选项),但每次似乎都丢失了一些文件,至少是make.exe。任何mingw子文件夹中都没有make.exe,只有mingw32-make.exe在C:\ProgramFiles\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin我是C++的新手,所以也许我忽略了什么?https://sourceforge.net/p/mingw-w64/wiki2/Make

c - MinGW,始终与 pthreads 链接

我最近一直在尝试使用MinGW进行开发,但出现了一些问题。似乎出于某种原因它总是想与pthread链接。我尝试用C语言编译一个简单的helloworld,但出现类似的错误ld.exe:cannotfind-lpthread很明显,它正在搜索pthread库,但没有找到。我从MinGW-get下载了库,正如预期的那样,编译和链接工作正常。然而,在剥离一个仅包含stdio.h的C语言简单helloworld的可执行文件后,该文件仍然有46k大。同样的文件在Cygwin上用gcc编译和剥离就像9k,MSVC也差不多。所以它提示缺少一个库。提供库可以解决问题并使其正常工作。但是在C中剥离的he

使用 MinGW-w64 和 Boost.Build 的 C++ 构建环境

我目前正在将我的一个项目移植到GCC,并且我正在使用MinGW-w64项目来完成这项工作,因为我需要x64和x86支持。不过,我在设置构建环境时遇到了问题。我的项目目前使用BoostC++库,为了简化构建过程,我也在我的项目中使用了Boost.Build(因为它使集成变得简单)。在MSVC下这很好,因为我可以从命令行执行以下操作:b2toolset=msvcaddress-model=32#compileas32-bitb2toolset=msvcaddress-model=64#compileas64-bitMinGW-w64使这个“有问题”,因为32位和64位工具链位于不同的目录中

c++ - MinGW-W64 链接器在搜索第三方静态库时跳过不兼容的文件

我在Windows764位上,我正在使用来自MinGW-W64的g++进行编译。我正在尝试编译我在Unix计算机上编写的应用程序。然而,当我尝试链接某些第三方时遇到了问题lib.lib文件。具体来说,我需要链接到ROOT图书馆。链接器吐出错误,例如C:/Users/jroth/Data/nest3/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe:skippingincompatibleC:/root/root_v5.34.28/lib/libGui.lib

windows - 在 MSYS2/MinGW 中执行脚本

在Windows上,如果我启动c:\msys64\mingw64.exe,它会打开一个shell,我可以在其中构建我的项目,比方说通过调用releasebash脚本(简化)。一切正常。现在,我想直接在mingw64上执行我的release脚本,无需交互。我试过:c:\msys64\mingw64.exe/c/the/full/path/release一个窗口打开和关闭,它不起作用。我试图直接使用bash,但似乎环境设置不正确:>c:\msys64\usr\bin\bash-cls/usr/bin/bash:ls:commandnotfound>c:\msys64\usr\bin\bas

c++ - 如何在 Mingw Gcc 中声明和链接到 RoInitialize、RoUninitialize、RoGetActivationFactory 和 HSTRING 函数

更新:在roapi.h中添加了RoInitialize的内容我正在编写纯C++11WinRT库。我不使用WRL或C++/CX(显然,如果我想要纯C++11)。我的代码可以在MSVC上编译和运行,但我想看看我是否可以让代码在MingwGcc上编译和运行。具体来说,我使用的是从nuwen.net获得的GCC4.7.2。此时我需要的是调用WindowsAPI函数RoInitialize、RoUnitialize、RoGetActivationFactory和HSTRING函数WindowsCreateString、WindowsDuplicateString、WindowsDeleteStr

c++ - 在带有 mingw 的 Windows 上使用 openmp。找不到 -lpthread

我有一个使用OpenMP并在Linux上运行的CMake项目。当我在我的Windows机器上编译它时,看起来CMake无法找到mingw的gcc的openmp标志。我决定尝试一个较小的测试用例并只编译main_openmp.c#include#includeintmain(intargc,char*argv[]){intid;#pragmaompparallelprivate(id){id=omp_get_thread_num();printf("%d:HelloWorld!\n",id);}return0;}然后当我尝试编译时gcc-oOpenMPTest2main_testomp.