Articles of mingw

__WORDSIZE在编译中的作用

以下是/usr/include/x86_64-linux-gnu/gnu/stubs-32.h文件的内容: #include <bits/wordsize.h> #if __WORDSIZE == 32 # include <gnu/stubs-32.h> #elif __WORDSIZE == 64 # include <gnu/stubs-64.h> #else # error "unexpected value for __WORDSIZE macro" #endif 我在64位机器上,所以结果 #include<stdio.h> main() { printf("Word size : %d\n",__WORDSIZE); } 是 Word size : 64 那么这里是一个问题,系统variables__WORDSIZE的作用是什么? 我正在开发一个32位应用程序(使用mingw 32位编译器),由于我的__WORDSIZE是64位,文件/usr/include/x86_64-linux-gnu/gnu/stubs-32.h最终导致包括/usr/include/x86_64-linux-gnu/gnu/stubs-64.h 。 我对这部分感到困惑。 这个行为的后果是什么? 这是正常的,如果不是如何强行包含/usr/include/x86_64-linux-gnu/gnu/stubs-32.h ? 先谢谢你。

寻找Linux上的Win exe所需的DLL(用mingw交叉编译)?

我在Linux上使用MinGW来交叉编译到Windows。 做到这一点是一件轻而易举的事情。 把所需的DLL包装起来并不那么简单。 目前的解决scheme是在Windows上运行可执行文件并复制到DLL,直到它真正运行。 是否有一个Linux的工具,列出我的Windows .exe所需的DLL? (类似于ldd和DependencyWalker的组合)

如何使用mingw-w64编译和链接32位Windows可执行文件

我使用Ubuntu 13.04并使用apt-get install mingw-w64 。 我可以使用下面的命令编译并链接我的程序的一个可用的64位版本: x86_64-w64-mingw32-g++ code.cpp -o app.exe 其中生成一个64位的app.exe文件。 我用什么二进制或命令行标志来生成一个32位版本的app.exe?

是否有用于Linux的Clang mingw交叉编译器?

在Linux中,特别是在Debian或Ubuntu上,预先打包的Mingw交叉编译器可以生成Windows EXE。 但有没有类似的交叉编译器使用Clang而不是GCC? (或者如何build立这样一个野兽的指示。)

在Windows 7上开始使用OpenCV 2.4和MinGW

如何安装OpenCV 2.4并使用MinGW编译我的代码?

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

我写了我自己的引用计数的内存pipe理器c + +(为了好玩),我相信它不完美;)。 而现在当我尝试使用它时,我得到了随机的SIGTRAP信号。 如果我注释掉与内存pipe理器有关的每一行,一切运行良好。 获取SIGTRAP-s而不是SIGSEGV是相当奇怪的。 我知道SIGTRAP-s在程序遇到断点时抛出,但没有设置断点。 我在另一个线程读取的exe和DLL的debugging版本必须是最新的。 他们是最新的,所以这不是原因。 有谁知道为什么会发生这种情况?

在windows mingw下使用zlib

我似乎无法让zlib在windows下对mingw进行任何操作。 我下载了zlib @ http://sourceforge.net/projects/mingw/files_beta/MinGW/zlib/zlib-1.2.3-1-mingw32/ ,并将头文件和lib文件放在正确的位置。 简单的代码如: #include <stdlib.h> #include <stdio.h> #include "zlib.h" int main(int argc, char *argv[]) { long a; char buffer[1024]; a = 1024; compress(buffer,&a,"testing",7); return 0; } 编译: gcc test.c -lzlib -Wall -o test.exe 编译好。 但是exe文件在压缩函数中崩溃。 有任何想法吗?

如何在Windows中从命令行挂起/恢复正在运行的程序?

我试图在Windows 7中使用OS命令脚本暂停正在运行的程序。 在searchStackOverflow / Search-Engines后,似乎大部分build议都涉及使用sysinternals进程资源pipe理器,在这个资源pipe理器中,可以轻松地使用鼠标暂停和恢复程序。 但是,我想用命令行来做同样的事,不知道怎么做。 任何人都可以告诉我如何从命令行暂停/恢复程序? 注意。 我正在使用Windows 7和MinGW。

mingw-w64线程:posix vs win32

我在Windows上安装mingw-w64,有两个选项:win32线程和posix线程。 我知道什么是win32线程和pthreads之间的区别,但我不明白这两个选项之间的区别是什么。 我怀疑,如果我会selectposix线程,它会阻止我调用像CreateThread WinAPI函数。 看来这个选项指定哪个线程API将被一些程序或库使用,但是通过什么? 通过海湾合作委员会,libstdc ++或其他? 我发现这个: 在windows的gcc端口thread_posixs和thread_win32之间有什么区别? 总之,对于这个版本的mingw,threads-posix版本将使用posix API并允许使用std :: thread,而threads-win32将使用win32 API,并且禁用std :: thread的部分标准。 好的,如果我将selectwin32线程,那么std :: thread将不可用,但仍将使用win32线程。 但是用什么?

mingw make不能处理path中的空格?

我正在尝试编译代码,使用qmake创build的makefile。 当我运行mingw32-make时出现以下错误: cd bzip2-1.0.5\ && c:\QtSDK\Desktop\Qt\4.7.3\mingw\bin\qmake.exe c:\Documents an d Settings\user\My Documents\Visual Studio 2010\Projects\meshlab\meshlab\meshla b\src\external\bzip2-1.0.5\bzip2-1.0.5.pro -o Makefile Cannot find file: c:\Documents. Cannot find file: and. Cannot find file: Settings\user\My. Cannot find file: Documents\Visual. Cannot find file: Studio. Cannot find file: 2010\Projects\meshlab\meshlab\meshlab\src\external\bzip2-1.0.5 \bzip2-1.0.5.pro. mingw32-make: *** [bzip2-1.0.5\Makefile] Error 2 由于错误,似乎mingw32-make不理解在其中有空格的path。 真的吗? 有没有办法解决它?