Articles of mingw w64

如何使用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?

mingw-w64安装程序中选项的含义

在MinGW-W64在线安装程序中,您可以select几个字段。 不过,我找不到任何文件,我做的猜测不给我我想要的行为。 显然,这个项目已经做了很多工作,所以看起来可惜的是,由于缺乏基本的文档资料,这个问题被阻碍了。 “版本”和“体系结构”字段是不言自明的,但我遇到的其他字段是(以当前安装程序显示的值): 线程 ,选项posix和win32 例外 ,选项dwarf和sjlj build立修订 ,选项0 。 在我以前的安装中select的值是win32 , seh和1 (显然这个选项自那时以来已经改变了,但是我不明白什么是什么)。 每个选项有哪些优缺点,特别是线程模型和exception处理,以及哪个版本是“最好的”? 我遇到的使用x86_64-win32-seh-rev1的具体问题是: 不支持std::thread和std::condition_variable 在debugging时(使用Code :: Blocks作为IDE),如果抛出exception,它不会跳转到exception处理程序; select下一行将不执行任何操作3次,然后中止运行。 我可以应付debugging问题,但是如果能够使用C ++ 11线程将会非常好。

“双目标”MinGW-W64是不是真的是双目标?

当我尝试使用MinGW-build编译64位主机上的32位程序时: T:\mingw64>.\bin\g++ -m32 Test.cpp 我得到: t:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible t:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.0/libstdc++.dll.a when searching for -lstdc++ t:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible t:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.0/libstdc++.a when searching for -lstdc++ t:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible t:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.0\libstdc++.a when searching for -lstdc++ t:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible t:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.0/libstdc++.dll.a when searching for -lstdc++ t:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible t:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.0/libstdc++.a when searching for -lstdc++ t:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lstdc++ t:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible t:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.0/../../../../x86_64-w64-mingw32/lib/libmingw32.a when searching […]

用Go 1.7构build一个dll

有没有办法在Windows下build立一个DLL的Go v1.7? 我尝试了一个经典 go build -buildmode=shared main.go 但是得到 -buildmode = shared在windows / amd64上不受支持 更新好的,我有我的答案。 对于那些有兴趣的人: https : //groups.google.com/forum/#!topic/golang-dev/ckFZAZbnjzU

链接到Windows上的可执行文件的正确方法是什么?

我需要使用插件中的主要可执行文件中的一些符号。 链接到可执行文件导致以下链接器错误: i686-w64-mingw32-g++ example.cpp -shared -I.. -std=c++11 -o test.dll ../../test.exe -static-libgcc -static-libstdc++ -fvisibility=hidden [..]/test.exe:cygming-crtbegin.c:(.text+0x500): multiple definition of `__gcc_register_frame' /usr/lib/gcc/i686-w64-mingw32/5.1.0/crtbegin.o:cygming-crtbegin.c:(.text+0x0): first defined here [..]/test.exe:cygming-crtbegin.c:(.text+0x560): multiple definition of `__gcc_deregister_frame' /usr/lib/gcc/i686-w64-mingw32/5.1.0/crtbegin.o:cygming-crtbegin.c:(.text+0x60): first defined here [..]/test.exe: In function `ZlsRSoRK5Color': [..]src/tools.h:212: multiple definition of `operator<<(std::ostream&, Color const&)' /tmp/ccC97Hkz.o:example.cpp:(.text$_ZlsRSoRK5Color[__ZlsRSoRK5Color]+0x0): first defined here ../../test.exe: In function `ZN7MessageILb0EElsIcEERS0_OT_': [..]/src/tools.h:241: multiple definition of `Message<false>& […]

对不起,未实现:未编译的64位模式

这就是我想要做的(在Windows 7 64位上): g++ -m64 -o main main.cpp 而我得到的错误是: Sorry, unimplemented: 64 bit mode not compiled in … 我从这里安装了mingw-64-install.exe: https : //sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/installer/ 但我仍然得到同样的错误。 我是否也需要在环境variables中添加此文件夹的path? 谢谢 编辑: 这是我input的内容 g++ -v Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/4.9.3/lto-wrapper.exe Target: mingw32 Configured with: ../src/gcc-4.9.3/configure –build=x86_64-pc-linux-gnu –host=m ingw32 –prefix=/mingw –disable-win32-registry –target=mingw32 –with-arch=i58 6 –enable-languages=c,c++,objc,obj-c++,fortran,ada –enable-static –enable-sha red –enable-threads –with-dwarf2 –disable-sjlj-exceptions –enable- […]

当ZMQ_FD option_val的本地地址传递时,zmq_getsockopt在windows x64上返回EINVAL

在windows x64上,将局部variables的地址传递给ZMQ_FD的zmq_getsockopt将始终导致EINVAL。 下面的代码是尽可能最小的重现问题。 #include <zmq.h> #include <stdio.h> void zmq_perror(const char*); int main(void) { const char *endpoint = "tcp://127.0.0.1:7100"; void *ctx = zmq_ctx_new(); if (ctx == NULL) { zmq_perror("zmq_ctx_new"); } void *socket = zmq_socket(ctx, ZMQ_DEALER); if (socket == NULL) { zmq_perror("zmq_socket"); } int rc; rc = zmq_connect(socket, endpoint); if ( rc == -1 ) { zmq_perror("zmq_connect"); […]