Articles of mingw w64

在linux-64上configuration用于在Linux-64上构buildMinGW-64的选项(最终定位到windows-64)

我想打造MinGW-w64,其中: 答:我想在Linux(64位)上编译MinGW本身。 B:我希望MinGW工具(编译器等)在Linux(64位)上运行。 C:我想让MinGW工具(编译器等)生成在Windows 64位(Win7和Win8)上运行的代码。 我在configuration阶段遇到了麻烦。 我GOOGLE了一下,但我找不到我需要通过configuration什么选项。 我从( https://svn.code.sf.net/p/mingw-w64/code/trunk/ )下载了MinGW-w64 SVN的源代码。 (AFAICT这是目前的官方回购)。 源代码有一个文本帮助(mingw-w64-doc / howto-build / mingw-w64-howto-build.txt)。 但是,这主要是为了那些想在Windows上运行MinGW工具的人。 示例选项(对于非multilib w64目标)是: –host = x86_64-w64-mingw32 –target = x86_64-w64-mingw32 –disable-multilib 但我想我想要主机选项指向Linux(对吧?)。 我试过了 主机= x86_64的-Linux的GNU 和 主机= x86_64的-PC-Linux的GNU 但没有运气。 我得到的错误: configuration:错误:请检查是否正确设置了mingw-w64头文件集和编译/主机选项。 configuration:错误:../../../svn/mingw-w64-v6615-2014-05-07/mingw-w64-crt/configure失败的mingw-w64-crt 完整的日志是 检查是否启用Makefiles的维护者特定部分…不 检查BSD兼容安装… / usr / bin / install -c 检查构build环境是否理智…是的 / make / tool / MinGW […]

致命错误:sys / socket.h:没有这样的文件或目录,x86_64-w64-mingw32模式

我正在试图开发一个依赖于套接字库的程序,一旦我试图做到这一点,它就会提示我: fatal error: sys/socket.h: No such file or directory #include <sys/socket.h> 我的构build环境:Windows 8.1在Cygwin x64版本下,构build目标:x86_64-w64-mingw32作为–host = x86_64-w64-mingw32参数。 命令行:cfalgs = -m64 ./configure –prefix = / usr / 我正在构build使用GTK + 2.0的应用程序。 我试图find在修补程序下的socket.h文件下的find:cygwin64 \ usr \ x86_64-w64-mingw32 \ sys-root \ mingw \ include \ sys。 它似乎根本不存在。 所以没有x64版本的MinGW套接字库?

使用MinGW-w64编译Windows的LAPACK

我想要做的是在Windows 64位上使用LAPACK。 使用mingw 64bit构build它的步骤如下所示: http : //icl.cs.utk.edu/lapack-for-windows/lapack/index.html#build 它提到libgcc_s_dw2-1.dll是必需的DLL。 但是,如果我安装mingw64位,那么这个DLL没有安装。 我该如何解决这个问题。 其他人用mingw 64bit来编译和使用LAPACK?

在Windows下使用MinGW-w64编译POCO库(未find消息编译器)

我遇到了PocoMacros.cmake文件的部分代码问题: # CMAKE_MC_COMPILER – where to find mc.exe if (WIN32) # cmake has CMAKE_RC_COMPILER, but no message compiler if ("${CMAKE_GENERATOR}" MATCHES "Visual Studio") # this path is only present for 2008+, but we currently require PATH to # be set up anyway get_filename_component(sdk_dir "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows;CurrentInstallFolder]" REALPATH) get_filename_component(kit_dir "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows Kits\\Installed Roots;KitsRoot]" REALPATH) get_filename_component(kit81_dir "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows Kits\\Installed Roots;KitsRoot81]" […]

使用CMake(包括Lapack)将Fortran库从Linux交叉编译到Windows

我有一个在Linux上开发的Fortran库,我想与通常使用Windows的同事分享。 我不希望他们帮助开发它,所以我想要做的就是使用交叉编译器生成一个静态可执行文件,以便它们可以运行它。 我可以使用Linux上的交叉编译器工具链(openSUSE)编译简单的Hello World程序,它在Windows上工作时没有问题,但是当我尝试将可执行文件链接到另一个库(Lapack)时,Windows抱怨找不到它也是dynamic链接的.dll文件。 在我的问题中,我展示了如何使用编译源代码 最小工作示例 我使用openSUSE,它提供了交叉编译组件的存储库。 要开始,我安装了mingw64-cross-toolchain以及相关的lapack和blas开发文件: mingw64-cross-gcc mingw64-cross-g++ mingw64-cross-gfortran mingw64-lapack-devel mingw64-blas-devel 这也带来了一些其他所需的软件包 我的最低工作树如下所示: ├── linalg_mod.f90 └── main.f90 linalg_mod.f90本质上是一些lapack例程的薄包装,main.f90是我的主要程序。 他们本身并不是很有趣,主要包含一个简单的3x3matrix需要解决,然后输出解决scheme。 > cat main.f90 program main use iso_fortran_env, only: wp=>real64 use linalg, only: linsolve_quick implicit none integer :: ii real(wp) :: A(3,3), b(3), x(3) A = reshape([1, 2, -3, -2, 1, 2, 3, 1, -2], […]

在MSYS2 / MinGW中执行脚本

在Windows上,如果我启动c:\msys64\mingw64.exe ,它会打开一个shell,在那里我可以构build我的项目,比方说通过调用一个release bash脚本(以简化)。 一切工作正常。 现在,我想直接在mingw64上执行我的release脚本,而不需要交互。 我试过了: c:\msys64\mingw64.exe /c/the/full/path/release 一个窗口打开和closures,它不起作用。 我试图直接使用bash ,但似乎环境没有正确设置: > c:\msys64\usr\bin\bash -c ls /usr/bin/bash: ls: command not found > c:\msys64\usr\bin\bash -c /bin/ls … it works … 所以显然这个环境与执行c:\msys64\mingw64.exe然后调用ls 。 如何执行我的release脚本,就像我在mingw64.exe启动的shell mingw64.exe ?

python Windows“ImportError:DLL加载失败:找不到指定的模块”。加载编译扩展时。

我使用MinGW64编译python模块,它不会加载。 我试着检查文件的文件types(与mingw file命令),他们都是64位,所以这不是问题。

想要在Windows上移植现有的rsync

我知道目前有作为G-Rsync的Windows的rsync。 那是这样的: – http://sourceforge.net/projects/grsync-win/ 但是,我想要做的只是使现有的rsync代码可以在这里: – https://rsync.samba.org/download.html在Windows上运行。 我已经检查: – https://stackoverflow.com/questions/528298/rsync-for-windows但是,这不是我想要的。 另外,我发现https://github.com/MatthewSteeples/rsync.net rsync端口为.net。 此外,Windows使用WinSock而不是套接字系统调用(所以,我不能从头开始编写整个rsync的Windows)。 所以我在这里查了MingW-w64: http ://mingw-w64.sourceforge.net 我想必须有一些方法来移植现有的rsync代码到Windows。 此外,下面的链接不能帮助我: – Win32 rsync端口的技术障碍 我不确定这个MingW-w64能帮助我吗?我可以使用这个工具在Windows上移植现有的rsync。 我也想知道,MingW-w64是用来做什么的? 另外,如果我在这里丢失任何东西,请带上我的通知。 [编辑]我发现这些项目 https://github.com/meeuw/rsync-mingw32 (找不到这个项目的文档,readme.txt和rsync的一样)。 http://sourceforge.net/projects/mingw/files/MSYS/Extension/rsync/rsync-3.0.8-1/ (这需要MSYS控制台来configurationMSYS-build-rsync)。 但是,不知道这些选项是否会达到我的目的? 任何人都可以请评论这些上面提到的2个项目是什么? 提前致谢。

C99代码在Linux上编译,Windows上的语法错误

我有一个C99中的代码库,可以在GCC和Clang上编译和运行在Linux上; 但是,在MinGW-w64(通过MSYS2安装),它会给出类似的错误 include/math3d.h: In function 'matPerspective': include/math3d.h:577:1: error: parameter name omitted matPerspective (float y_fov, float aspect, float near, float far) ^~~~~~~~~~~~~~ include/math3d.h:577:1: error: parameter name omitted include/math3d.h:595:28: error: expected expression before ')' token m.elem[10] = -((far + near) / (far – near)); ^ include/math3d.h:600:34: error: expected expression before ')' token m.elem[14] = -((2.0 * far […]

C转到初始化,MinGW-W64 vs MSVC ++

我在这里发现,根据C ++标准: 可以将其转换为块,但不能以绕过具有初始化的声明的方式。 在我的工作环境中的C编码风格 (我的意思是,除了文件扩展名以外, 一切实际上都是C – 没有例外,没有模板,也没有实际的类)遵循这里指定的规则,即仅从一个函数退出只有在达到完全成功的stream程时执行所有权转移,对我们没有转移所有权的本地人进行清理,等等。下面是一个小例子(错误代码枚举以及为简洁起见而省略的其他内容): int func() { int iStatus = -1; PVOID pvSomeData = NULL; HANDLE hFile = INVALID_HANDLE_VALUE; pvSomeData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, BUFFER_SIZE); if (nullptr == pvSomeData) { iStatus = 1; goto lblCleanup; } const PTSTR pszFilePath = _T("C:\\temp\\bla.txt"); _tprintf(_T("Writing some stuff into '%s'"), pszFilePath); hFile = CreateFile(pszFilePath, GENERIC_WRITE, 0, […]