问题标签 [msys2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
411 浏览

c++ - MSYS2 区分大小写并包含在 XP 上?

我正在尝试使用 MSYS2 ( msys2-base-i686-20160205.tar.xz) 在 XP 上编译一个项目。包含的文件之一是:

反过来,该文件在其第 34 行中执行:

该文件已经存在,例如:

... Z:驱动器也是我的代码的位置。在我的g++编译行上,我-I Z:/msys32/mingw32/i686-w64-mingw32/include首先,在很多包含之后,-I /z/path/to/libA/Include/A/B. 但是,当我尝试编译时,编译失败,与String.h.

因此,我通过添加(“在预处理阶段后停止”)并在命令行-v -E更改为进行了检查,并且可以在结果中看到:-o File.eg++File.e

据我了解,预处理器来到第 34 行Z:/path/to/libA/Include/A/B/String.h,看到#include <string.h>,开始string.h在当前目录中查找 - 并找到它,即使它不以这样的名称存在!?事实上,如果我从 MSYS2 bashshell 执行:

...没有返回任何内容(同时String.h找到大写的);但是,如果我强制使用非大写名称或大写名称的列表:

...那么它们都被报告为存在?!

我猜这就是“混淆”g++的原因,因为它被阻止在系统路径的其他地方/中寻找string.h(微小的字母)。因为,我发现Git-windows 区分大小写的文件名没有正确处理,并且:

虽然 NTFS(和一些远程文件系统)支持区分大小写,但从 Windows XP 开始的 NT 内核默认不支持它。相反,您必须调整注册表设置并重新启动。因此,Cygwin 不支持区分大小写,除非您更改该注册表值。
如果你真的想在 Cygwin 中区分大小写,你可以通过将注册表值设置
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\obcaseinsensitive
为 0 来打开它并重新启动机器。

...我这样做了,但我仍然遇到同样的问题;不确定这是否是因为我在 MSYS2(不是 Cygwin)上使用了 MINGW;或者因为像Enable casesensitive behavior with Windows XP and Interix Subsystem 或 SFU这样的资源引用HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Kernel\ObCaseInsensitive(注意,大写);但是,我已经有了这些键(我只是将其设置为 0,然后重新启动),并且它们带有微小的字母,就像在 cygwin.com 链接中一样。此外,重新启动后测试,这也没有帮助。

虽然如何使 MinGW 对包含的头文件名区分大小写表明这可能无法解决 - 我能做些什么来解决这个问题,并说服从系统位置g++读取string.h?我已经尝试在不同的机器上构建相同的库,Windows 7 或 8 远程桌面,它使用相同的 MingW 版本 - 所以应该可以做一些事情......

0 投票
2 回答
185 浏览

windows - 展开包含 '(' 的 bash 环境变量

在 Windows 10 上使用来自 msys2 的 bash,我似乎无法在 bash 脚本中将变量设置为包含括号的 Windows 环境变量,即 '('。例如,

不起作用,它扩展了 env 变量$PROGRAMFILES。我试过用反斜杠转义,即。"$PROGRAMFILES\(x86\)" 但这不起作用。bash中有没有办法解决这个问题?还是扩展变量中不允许使用括号?所有 windows 变量在进程环境中都可用。

0 投票
1 回答
1887 浏览

msys2 - ld:无法打开输出文件 conftest.exe:权限被拒绝

在 Windows 7 64 位上使用MSYS2(版本x86_64-20160205),我正在尝试编译corkscrew

这是输出:

和内容config.log

我已经测试了这个答案,但没有成功。或者更准确地说,它随机进入下一步(无法检测到我的系统,我认为这更像是开瓶器的配置问题)......

这不是权限问题,因为我拥有该文件夹的所有权限,并且我使用我的用户来执行./configure.

任何想法?

0 投票
1 回答
5593 浏览

c - 在 Windows 10 上安装 GTK for c?

你能告诉我如何在 Windows 10 上安装 GTK 或者有一个分步指南,我试过的所有这些都没有帮助我。可能如果有人还解释如何从 cmd 编译或准备 IDE(代码:可能是块)。

0 投票
0 回答
192 浏览

c++ - msys2下如何创建alpha_encoder.exe(webm-tools)?

我正在尝试编译alpha_encoder)(WebM Project的小实用程序,在webm-tools下)。我. _ _ _ c:\FFcompiler它花了一些时间,但我设法编译了ffmpeg,所以我决定使用它(我认为它会做)。这就是我到目前为止所做的。

首先,我将 webm-tools克隆到/cygdrive/c/FFcompiler/ffmpeg_local_builds/sandbox/win32/libvpx-1.4.0/third_party/. 有一个Makefile所以我试图运行make

但是g++抱怨mkvparser.hpp不存在。命令是

在网上搜索后,似乎webm-tools依赖于libwebm,并期望找到它作为webm-tools的同级文件夹。所以...

怎么办?README.libwebm告诉“使用 mingw-w64 为 Windows 交叉编译 libwebm”首先我必须cmake像这样运行cmake -DCMAKE_TOOLCHAIN_FILE=path/to/libwebm/build/mingw-w64_toolchain.cmake path/to/libwebm。就我而言:

并且cmake找不到i686-w64-mingw32-g++bin在谷歌搜索更多之后,解决这个问题的最简单方法似乎是添加mingw-w64-i686to PATH

在此之后,现在cmake成功完成并创建一个Makefile,但因 make错误而停止:

我已经搜索了该错误,但我被卡住了。我错过了什么?

0 投票
0 回答
605 浏览

ruby - msys2 下的 ruby​​ gem 原生扩展失败

我正在尝试安装几个 gem,其中一些需要构建本机扩展。

由于某种未知原因,自动生成的 Makefile 无法正常工作。产生的错误是:

当我进入这个文件夹并手动执行make时:

更仔细地检查问题:

如果我稍微修改 Makefile(删除对对象标题的依赖),就会发生明显的情况:

手动运行命令(由 生成make -n)没有错误并且编译成功。不幸的是我不能使用这个hackery来构建gem。

那么问题来了:为什么系统在make运行时找不到header,而直接使用gcc却找到了?我需要改变什么?

0 投票
1 回答
277 浏览

windows - 在 Windows 10 上通过 MSYS2 安装 hmatrix 时遇到问题

我一直在尝试在我的(64 位)Windows 10 计算机上安装 hmatrix;在搜索并尝试了许多可能的解决方案(包括此处给出的“Windows”和“Alternative Windows Build”下的说明之后,我决定继续在这个Reddit 线程上给出的操作过程。

但是,当我输入命令时

进入 MSYS2 shell,给出以下日志:

但是,当我检查目录时c:\msys64\mingw64\bin,我发现libopenblas.dll它就在那里;我不知道为什么阴谋集团似乎找不到它。

关于为什么这不起作用或该怎么做的任何见解?

更新: 文件libopenblas.dll.alibopenblas.a在目录中c:\msys64\mingw64\lib。是否有可能我也需要以某种方式包含这个目录?(如果我这样做,我会怎么做?)

我还下载了下面 Alex Vorobiev 评论中的文件,c:\msys64\mingw64\bin如果它们是 .dll 或c:\msys64\mingw64\lib它们是 .libs,则将它们放入。头文件已经包含在c:\msys64\include\openblas.

在进行这些更改后,我尝试了原始帖子中命令的几种变体,包括切换\bin\lib切换\include\include\openblas但所有这些仍然给出相同的错误。

0 投票
1 回答
307 浏览

linux - 为什么 Cross gdb 需要 libexpat-1.dll?

我刚刚通过在 MSYS2/MINGW64 上编译源代码编译了一个交叉 gdb。但是当我运行 gdb 时,它会抛出一个错误并抱怨它无法启动,因为它需要libexpat-1.dll.

这就是我编译 gdb 所做的:

  • 得到源代码git clone git://sourceware.org/git/binutils-gdb.git
  • 在不同的目录中:

    • export TARGET=x86_64-amd-linux-gnu
    • export PREFIX=/tmp/myToolChain
    • binutils/gdb/path/configure --with-python=/mingw64/bin/python --target=${TARGET} --prefix=${PREFIX} --disable-shared --enable-static

    • make && make install

它编译没有任何问题。但是我不知道为什么它需要这些库,而我已经静态编译它并禁用了共享库。

我也尝试libexpat在编译期间不使用,但随后它抱怨另一个库libiconv-2.dll

我搞砸了什么?

编辑:我没有C:\msys64\mingw64\bin在我的道路上。添加它后,我不再收到以前的错误。

但是我仍然有这个问题,为什么虽然我静态链接库,但最终的二进制文件仍然需要一些库?

0 投票
1 回答
1485 浏览

python - 跨gdb找不到python

我使用 MSYS2/MINGW64 在 Windows 上构建了一个支持 python 的交叉 gdb。我已经在 MINGW64 中安装了 python,即我有python2.7.exe并且C:\msys64\mingw64\bin这个地址在我的路径中。

运行 gdb 时出现以下错误

我还添加C:\msys64\mingw64\lib了我有的地方,libpython2.7.dll.a但我仍然得到同样的错误。

我还尝试在 Windows 上安装 python 并设置所有路径,但仍然是同样的错误。

如何让 gdb 找到 python?

0 投票
3 回答
32827 浏览

qt - 如何在 Qt Creator 中使用 MinGW-64

我知道有很多关于这个的帖子,但老实说我没有理解任何一个。

那么,如何为我的 Qt Creator(开源 5.7)安装套件?

  • 我已经下载并安装了 MSYS2.... 不知道如何处理它。
  • 我已经下载并安装了 Qt64 - NG.... 不知道下一步该做什么。

我只是希望能够在 Qt 中进行开发,并在 MinGW 32 和 MinGW 64 之间进行了选择。

提前致谢!


编辑:我还检查了 wiki 页面。大多数命令都不起作用。我被告知它已经过时了。