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立这样一个野兽的指示。)

使用mingw和g ++ 4.7.2获取std :: thread / mutex在Win7下工作

问候, 我最近搬出了我的unix避难所来testing一个所谓的跨平台的networking库,只是发现mingw不喜欢被喂食c ++ 11的东西。 我认为我错过了所需的头文件,因为Win7并没有包含c ++ 11的支持。 它与VS2012编译得很好 但g ++拒绝。 error: 'thread' in namespace 'std' does not name a type error: 'mutex' in namespace 'std' does not name a type 问题是: 如何获得c ++ 11头文件/ lib的副本,即<thread>而不使用VS2012安装提供的。 PS#1我试过mingw得到更新,但它仍然不会find<thread> PS#2我也使用-std = c ++ 11 此致 克里斯。

MinGW 5.3.0-2不能正常工作

升级到MinGW 5.3.0-2(实际版本)后出现bizzare错误 我检查了一切,因为这是我第五次重新安装它,并认为这将有所帮助 Code :: Blocks输出: mingw32-g++.exe -Wall -fexceptions -g -c C:\Users\Tudor\Documents\C++\test\main.cpp -o obj\Debug\main.o mingw32-g++.exe -o bin\Debug\test.exe obj\Debug\main.oc:/mingw/bin/../lib/gcc/mingw32/5.3.0/../../../../mingw32/bin/ld.exe: cannot find -lpthread collect2.exe: error: ld returned 1 exit status Process terminated with status 1 (0 minute(s), 0 second(s)) 2 error(s), 0 warning(s) (0 minute(s), 0 second(s)) 注意:如果我检查-std = c ++ 11或-std = c ++ 14标志,我得到的输出如下所示: 点击我 […]

为什么我的程序在启动之前崩溃?

该程序由g ++用-g标志,-static-libgcc和-static-libstdc ++编译。 没有包含优化标志。 由于某种原因,但我不能进入主要。 为什么? $ nm -C test.exe | 用grep主006c05b0Ť__getmainargs 006b0ad0Ť__main 0088d0e8乙__mingw_winmain_hInstance 0088d0e4乙__mingw_winmain_lpCmdLine 0088d0ec乙__mingw_winmain_nShowCmd 006ce518 d __native_dllmain_reason00401180吨__tmainCRTStartup 0088edc8我_imp____getmainargs 007491c0řjisx0213_to_ucs_main 00405f0c t主00401570ŤmainCRTStartup 00884010 b mainret 004a3371Ťsqlite3_backup_remaining 0078ada0řuhc_1_2charset_main 0078c440řuhc_1_2uni_main_page81 007899a0řuhc_2_2charset_main 0078db00 r uhc_2_2uni_main_pagea1 $ gdb test.exe GNU gdb(pcx32)7.3.50.20111127-cvs版权所有(C)2011自由软件基金会,许可证GPLv3 +:GNU GPL版本3或更高版本这是免费软件:您可以自由更改和重新分配它。 没有担保,在法律允许的范围内。 input“显示复制”和“显示保修”以获取详细信息。 这个GDB被configuration为“i686-w64-mingw32”。 有关错误报告的说明,请参阅:…从c:\ test.exe中读取符号…完成。 (gdb)break主断点1在0x405f15:文件test.cpp,行1054.(gdb)break mainCRTStartup断点2在0x401570(gdb)断点__tmainCRTStartup断点3在0x40118c(gdb)断点__main断点4在0x6b0ad0(gdb)断点__getmainargs在0x6c05b0(gdb)运行断点5开始程序:c:\ test.exe [新线程5832.0xc0c]在启动程序退出代码0xc0000022。 (GDB) PS依赖沃克表明,它不能打开SYSNTFY.DLL,找不到IEFRAME.DLL。 但是,这不是新的,不应该成为问题。 (gdb)信息文件 来自“c:\ test.exe”的符号。 […]

使用Linux上的gcc和Windows上的MinGW构build共享库

我在生成一个构build设置时遇到了问题,它允许共享库分别在Linux和Windows中分别使用gcc和MinGW构build。 在Linux中,共享库不需要在编译时解决所有的依赖; 而在Windows中则出现这种情况。 这是问题设置: $ cat foo.h #ifndef FOO_H #define FOO_H void printme(); #endif $ cat foo.c #include "foo.h" #include <stdio.h> void printme() { printf("Hello World!\n"); } $ cat bar.h #ifndef BAR_H #define BAR_H void printme2(); #endif $ cat bar.c #include "bar.h" #include "foo.h" void printme2() { printme(); printme(); } $ cat main.c #include "bar.h" […]

'easy_install -U cython'无法抱怨vcvarsall.bat和-mno-cygwin

在Windows下,似乎具有C依赖性的easy_install不是很容易。 尝试1 – vcvarsall.bat错误 我使用cython在Windows7下安装MinGw ; 我修改了Windows7的PATH以包含C:\MinGw\bin 。 在这一点上,我试图easy_install -U cython ,并得到了… C:\Users\mike_pennington\Desktop\TestDrive>easy_install -U cython Searching for cython Reading http://pypi.python.org/simple/cython/ Reading http://www.cython.org Reading http://cython.org Best match: Cython 0.15.1 Downloading http://cython.org/release/Cython-0.15.1.zip Processing Cython-0.15.1.zip Running Cython-0.15.1\setup.py -q bdist_egg –dist-dir c:\users\mike_p~1\appdata \local\temp\easy_install-qr1tet\Cython-0.15.1\egg-dist-tmp-556kzq Compiling module Cython.Plex.Scanners … Compiling module Cython.Compiler.Scanning … Compiling module Cython.Compiler.Parsing … Compiling module Cython.Compiler.Visitor … […]

最终链接失败:包含windows.h时无效参数

我已经在Windows上用C ++开发了MinGW和Eclipse。 一切工作很好,直到我#include <windows.h> 。 只要我这样做,我得到链接器错误信息c:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: final link failed: Invalid argument ,其中开始的pathparsing为C:/MinGW/mingw32/bin/ld.exe 。 我不知道错误信息会告诉我什么…所以请帮我解密它。